- /**
- * @group legacy
- */
- public function testLegacySetOnSynchronizedService()
- {
- $container = new ContainerBuilder();
- $container->register('baz', 'BazClass')
- ->setSynchronized(true)
- ;
- $container->register('bar', 'BarClass')
- ->addMethodCall('setBaz', array(new Reference('baz')))
- ;
-
- $container->set('baz', $baz = new \BazClass());
- $this->assertSame($baz, $container->get('bar')->getBaz());
-
- $container->set('baz', $baz = new \BazClass());
- $this->assertSame($baz, $container->get('bar')->getBaz());
- }
-
- /**
- * @group legacy
- */
- public function testLegacySynchronizedServiceWithScopes()
- {
- $container = new ContainerBuilder();
- $container->addScope(new Scope('foo'));
- $container->register('baz', 'BazClass')
- ->setSynthetic(true)
- ->setSynchronized(true)
- ->setScope('foo')
- ;
- $container->register('bar', 'BarClass')
- ->addMethodCall('setBaz', array(new Reference('baz', ContainerInterface::NULL_ON_INVALID_REFERENCE, false)))
- ;
- $container->compile();
-
- $container->enterScope('foo');
- $container->set('baz', $outerBaz = new \BazClass(), 'foo');
- $this->assertSame($outerBaz, $container->get('bar')->getBaz());
-
- $container->enterScope('foo');
- $container->set('baz', $innerBaz = new \BazClass(), 'foo');
- $this->assertSame($innerBaz, $container->get('bar')->getBaz());
- $container->leaveScope('foo');
-
- $this->assertNotSame($innerBaz, $container->get('bar')->getBaz());
- $this->assertSame($outerBaz, $container->get('bar')->getBaz());
-
- $container->leaveScope('foo');
- }
-