3 namespace Drupal\Tests\Core\DependencyInjection;
5 use Drupal\Core\DependencyInjection\ContainerBuilder;
6 use Drupal\Tests\UnitTestCase;
7 use Drupal\Tests\Core\DependencyInjection\Fixture\BarClass;
10 * @coversDefaultClass \Drupal\Core\DependencyInjection\ContainerBuilder
11 * @group DependencyInjection
13 class ContainerBuilderTest extends UnitTestCase {
18 public function testGet() {
19 $container = new ContainerBuilder();
20 $container->register('bar', 'Drupal\Tests\Core\DependencyInjection\Fixture\BarClass');
22 $result = $container->get('bar');
23 $this->assertTrue($result instanceof BarClass);
29 public function testSet() {
30 $container = new ContainerBuilder();
31 $class = new BarClass();
32 $container->set('bar', $class);
33 $this->assertEquals('bar', $class->_serviceId);
39 public function testSetException() {
40 $container = new ContainerBuilder();
41 $class = new BarClass();
42 $this->setExpectedException(\InvalidArgumentException::class, 'Service ID names must be lowercase: Bar');
43 $container->set('Bar', $class);
47 * @covers ::setParameter
49 public function testSetParameterException() {
50 $container = new ContainerBuilder();
51 $this->setExpectedException(\InvalidArgumentException::class, 'Parameter names must be lowercase: Buzz');
52 $container->setParameter('Buzz', 'buzz');
58 public function testRegisterException() {
59 $container = new ContainerBuilder();
60 $this->setExpectedException(\InvalidArgumentException::class, 'Service ID names must be lowercase: Bar');
61 $container->register('Bar');
65 * Tests serialization.
67 public function testSerialize() {
68 $container = new ContainerBuilder();
69 $this->setExpectedException(\AssertionError::class);
70 serialize($container);