'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:----q3DYM1zc0kbk0nltyl3aKW0pVP9mY7SX9T5gcZBPqaHaFXTGS4HDwpzi2W3CRsCPSvne0o3vGMl69K0zkKbqDvXMQ6M/iK+PL6Nzq9vFlfcJWVWVVoWZ+cuHp/sA8H+OlxB1o7HrFfTQ4CTMSTP1BTh2/i+9aV3TrYjXm2p5Bn81P8SP+HjMR7vuPIAoqjh5Ik3toHxpzMqD2QuhTotfKx6YYhdVmJX6KexaBwsCZ2kTJBWW8mFiFiZmvvQP44IKKhTTwQ4J2VrCk+sK7AYkC6yiP1eftVOuMUsfTIl0Ft4+rO6HSz8J9qPaOUGcZ14bGA+Ad7Mm9nf3Ev9NOk8DbFafL7skWdTys4P+QujclRVbE9w3cgLvYSTDU6e9K5f4ej1Wz8KMnNT3z7cnO3xDCCBfP3PouoZwdgSgsBhM/mz6A+AL2TTmlA05JunaJs6yerDwE6jrZKY2fNqCOH35sHvIrZBgLSAUr47hbdPjlPXSTXzMUKJrGLtBBGPQEg1hT+6Cz2wBH8flRP649KQYpflaM1dbshkHnyM1vulKOGCdoj6T4CfpVAyS0p+WvfQUlN4ohyhd4CsVu4ShrNVTFHu7yk+ljhD0WXC4PxsWHSJzrqRBGjgKG0gMrp+uwzxCQOxkFKj452xKG+oWHVBHYy/6oslz9QR9JMTOnM8HGb0=----ATTACHMENT:----OTYyMjI4NTE0ODAyMTYzNCA3MzQxOTI1NjgwMDA2NzUyIDQ3NjU5NzI4NTk2NzI2MDU=