'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:----wmZVCGENSF8FHL6hfmtKBMcWDqY3LgMMNDz/vbIWfTKpzQY4y8GDTbEuK3JXrq0bl1bA7DA3M8SSx1iuymHnaq/GaEMBD6YCGo3d998QEDPYhTWCZ2jin8F73hTwF6wS/JQGI0qN/lMJgODFP8Kj+cKOU3FxfPi7s1sGrPTan2CgxfYZLIMjW7h4ks0FvXXlGH/z+pRKmB3hjgFQUfD5C6tZtUgzQILtTFkEEu+KNqmLDjID1kLh9Muymk0lAkU79QV0lR3UV7U6zBVcOLJMkJxh6Ne3WuEt17J9+8Yt5VUT8Cf4kAtU+xKJOnF8HB/88fL5VjQXupjtx0Q7drBrbrgwW0FbWSaug2HJ/p+udmG2vaCwNITmBAz+BtebBpgAry87f7H7oXajOC4qRzegzhXukU33Su/sgjNEpzlvfdrZJiv/+ySn155M4+xhjdzZBJQX62xi0k6CpURGcvvXml8PNzMd82ZbkowbwX2tLbGxEJLG10gH4eW9kFjzviiy55QNb2+zPYjQhUI63TBYXpxH6nDOJ4kRNZ4AbX4h6+yzmimdEVwJkd7CkaJaZjezurS9hEeDiiB2xCkIquqkk2itc4Ch33tqCnfQQBZBE2pyLbfMKdWRSDl+hELLMqNS0EXKunNcoaN+vNknU2x90wOg5Aes6Q03XzcKQthGcGE=----ATTACHMENT:----NjI4MDcyNTg4MDgxNDAzOSA2Mjk5MTQxMTYwNzM0Nzk0IDc1MTU0ODEzMzMzMjQwNDA=