'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:----EM4SWJQQsm/jjZhdINoTac/pIv6mAN2MrNXa9tk8d+2sPW/nISWzd52AmIoHy/8a7SyVVCKbGWpnTiGSvTjiqPZg2vOifgDIYXoEJGV6U2GnqKw5Sk7aYF13vW4tiXSu2aJDTs16k2GOUy6D0i1ZKxzPyxGaFg18eEr2OY2wEZ+pjVqGtffbmA7nHh8SEdnY/SdlOiBVw4JL9o5ynGKMRXvV8XIUtvW6I9tSiN1isJF8cWxJl2XsUiK2Nf+zFLJSAUoTOriHy9HMvN7AIbXEhaQh0FQlJXXx/d/Tq7IqNgof0AAW/izlpFBWYyoT9Q8BMfHFTwns0sBtmElD3cJaAzdTsp1KMekTiXMKCuHa2x/SC0rZWt8XulLRv61UlTNyBNk0zq0SwJ7YsX8yxpiHW+KBXsscYQcFc/wsMuFPnv7vfk3Cm3x7lAYRCcirGjBXoTgIiRfnAI2a07XUejHR4ULf/8thaUp7eJjXE3UrtU392wzmDSsvVCj4R1Vs1yzVQMR7ww9mY9ffNP0trbdXqo4apgnQFYmP80mt14xJTnPLYeqyGfGPb+PjH39RkdN3PGu2KxcxiR4+ZILRuRLC1FRTa+kFGmwW+e03I4C/Z3+Y8lGtWNC0EwIw+R1vcCnGzWm0isOZqTkGkGsHkYsZrAALBjbxuId9lkSKUw0+5gg=----ATTACHMENT:----NDQzMzMxNDk5NDQyMzg2MiA3Njg0MDAzNzY0MzY5NDI0IDYyODkxMjQ3NDIwOTI2OTI=