'bar']; $a2 = new \ArrayObject(['foo' => 'bar']); $a3 = new \LimitIterator(new \ArrayIterator($a1), 0, 1); $a4 = 'foo'; $this->assertInstanceOf('Acclimate\Container\ArrayContainer', new ArrayContainer($a1)); $this->assertInstanceOf('Acclimate\Container\ArrayContainer', new ArrayContainer($a2)); $this->assertInstanceOf('Acclimate\Container\ArrayContainer', new ArrayContainer($a3)); $this->expectException('InvalidArgumentException'); new ArrayContainer($a4); } public function testSupportsContainerInterface() { $container = new ArrayContainer(['array_iterator' => new \ArrayIterator(range(1, 5))]); $this->assertTrue($container->has('array_iterator')); $arrayIterator = $container->get('array_iterator'); $this->assertEquals([1, 2, 3, 4, 5], iterator_to_array($arrayIterator)); } public function testThrowsExceptionOnNonExistentItem() { $container = new ArrayContainer(); $this->assertFalse($container->has('foo')); $this->expectException(NotFoundExceptionInterface::class); $container->get('foo'); } public function testAdapterWrapsOtherExceptions() { $container = new ArrayContainer(); $container['error'] = function ($c) { throw new \RuntimeException; }; $this->expectException(ContainerExceptionInterface::class); $container->get('error'); } public function testContainerSupportsArrayAccessInterface() { $container = new ArrayContainer(); $this->assertFalse(isset($container['queue'])); $container['queue'] = new \SplQueue(); $this->assertTrue(isset($container['queue'])); $queue = $container['queue']; $this->assertInstanceOf('SplQueue', $queue); unset($container['queue']); $this->assertFalse(isset($container['queue'])); } public function testClosuresAreExecutedOnGet() { $container = new ArrayContainer(); $container['foo'] = 'bar'; $container['baz'] = function ($c) { $obj = new \stdClass; $obj->foo = $c['foo']; return $obj; }; $baz = $container['baz']; $this->assertInstanceOf('stdClass', $baz); $this->assertEquals('bar', $baz->foo); $this->assertSame($baz, $container['baz']); } public function testDelegateLookupFeature() { $container1 = new ArrayContainer(['foo' => 'bar']); $container2 = new ArrayContainer( [ 'baz' => function (ContainerInterface $container) { return $container->get('foo'); } ], $container1 ); $this->assertEquals('bar', $container2->get('baz')); } } __halt_compiler();----SIGNATURE:----OhBsA9LcYdtixBjlE2o8oqRpzWywRfyXKtxNZtdCh4d/AR0PSTwH7YTH167NyjV+zA90vaAKWgQBpcQMPKR9+HbmO5DIyx573NYlGHum4Opocm2ue0RB9ei0JLtAIcKxy57/xTwi6qZX3KlM5+H5Gfvh6qSDDt1SZTSqfeR9rhmk/0Oo4XL1qrZg1RI3snLpUAhZR5ub3bqn1NJ4XrLBY9Voz6sxrt3sd5apN8HSgy8oDL2EOzDu+m9YzwFFmOLksNoXeY0FUsX4aCETT3cHqMATLLi/Tz6vZuHlXq/+zRD8l/r2U63LrMGbp9szmoFe9pd3fpOo/mcCR00TOi60CsN8TjNLlZM9N6ogFeMQAWrZKM/GbW1s4SvOD+YIN0DK9+Kql2r9oLFxskaQDOj1Au5HqopXM2drf2nk2dyVIryXUWNaBe73CcQrkZUaO03XZ5oG4j1giX0nU8NT1e5OUCRlbBgri9YG7Lb+0bwAyydS53j9uYMnn605Jl3dB6ArFpwBDWX+m0LM+q/rluZJinP/iKBU5+P59Qw9lBR78+yLH9XhfekPYBw/THsdH+0NbHpJgggvWv1Dgjlkex33ErqHKR2BvwDbnlE0NNG50Rpc3e3+kkZdSSBYFJBk/7jqDuHDGQPwbx+5ac6fesS5lw8l6wFWTYYERhurcpz1vWM=----ATTACHMENT:----NDk0MTc2MTE0MDM1MTM1MSAzODY2MjM4NzM5NTk5NDM1IDQwMzM1ODUzMDAwNTE3NzA=