public function testEnterLeaveCurrentScope() {
$container = new ProjectServiceContainer();
$container
->addScope(new Scope('foo'));
$container
->enterScope('foo');
$scoped1 = $container
->get('scoped');
$scopedFoo1 = $container
->get('scoped_foo');
$container
->enterScope('foo');
$scoped2 = $container
->get('scoped');
$scoped3 = $container
->get('scoped');
$scopedFoo2 = $container
->get('scoped_foo');
$container
->leaveScope('foo');
$scoped4 = $container
->get('scoped');
$scopedFoo3 = $container
->get('scoped_foo');
$this
->assertNotSame($scoped1, $scoped2);
$this
->assertSame($scoped2, $scoped3);
$this
->assertSame($scoped1, $scoped4);
$this
->assertNotSame($scopedFoo1, $scopedFoo2);
$this
->assertSame($scopedFoo1, $scopedFoo3);
}