You are here

public function ContainerTest::testEnterLeaveScopeWithChildScopes in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/symfony/dependency-injection/Tests/ContainerTest.php \Symfony\Component\DependencyInjection\Tests\ContainerTest::testEnterLeaveScopeWithChildScopes()

File

vendor/symfony/dependency-injection/Tests/ContainerTest.php, line 339

Class

ContainerTest

Namespace

Symfony\Component\DependencyInjection\Tests

Code

public function testEnterLeaveScopeWithChildScopes() {
  $container = new Container();
  $container
    ->addScope(new Scope('foo'));
  $container
    ->addScope(new Scope('bar', 'foo'));
  $this
    ->assertFalse($container
    ->isScopeActive('foo'));
  $container
    ->enterScope('foo');
  $container
    ->enterScope('bar');
  $this
    ->assertTrue($container
    ->isScopeActive('foo'));
  $this
    ->assertFalse($container
    ->has('a'));
  $a = new \stdClass();
  $container
    ->set('a', $a, 'bar');
  $scoped = $this
    ->getField($container, 'scopedServices');
  $this
    ->assertTrue(isset($scoped['bar']['a']));
  $this
    ->assertSame($a, $scoped['bar']['a']);
  $this
    ->assertTrue($container
    ->has('a'));
  $container
    ->leaveScope('foo');
  $scoped = $this
    ->getField($container, 'scopedServices');
  $this
    ->assertFalse(isset($scoped['bar']));
  $this
    ->assertFalse($container
    ->isScopeActive('foo'));
  $this
    ->assertFalse($container
    ->has('a'));
}