'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:----P34Dl0LKwyfygNNEe1WpGWEZY9AC6830ojfrKq/qKsK2HKu9jpS9O2Sg9edc2NJrpWceuJggKwSZc247HumM6ZZ1wCvGBcBbP+jTFMaaninlqRAR34Jea10QPpxZbk9K4C4LR2Fv9EUYVDCyoVygFw6RXPWSTl2upy/WbPMPt6JaAy5Ta7s5gz9Bm5aB3uDj0o3nNiGc3489j9gbPsGUIl1XLiUhbaxluNUtbF8vfACNqlPIHzuIe4Swj+vCUBBp56bt6H33vwdLeJTiqlAu16yuiguaBdBjTk3962fK6LoAEsdpLsQE4lWGD+G4W8fN2gcPnOLEuddvy7mQ1jg8GaEkN4H+7qaG3olSu/s5KvAdd6Y8yVd5iGttBefpyaJmEI6HyJcBlcosl55N7Ry2oCoMPfHwgk2Qlub/VHDApJFICJSwdX5QV2f0rC5dmK+lpV77kljMsljoJMCl2ramMIIlce5jMfFD+a1ySWVn6uagYoTWi2j92oZRG1RfGMd6HoRZBdD2TWcR0WO6X6Lbh2hqiwZNNmst4a8dIxsdj6lw61L8gF7QEl91dD8IXSPxb/IVhfMuL4Xscj9sTQWngaMf6utgoswtG13926SkVSYW97QdRhNetWPvzOY4HaDrHQV2GfvBOR7DTLRANpjQfqrsct5DKOoWKDERR+MZLsQ=----ATTACHMENT:----NTU3NzM4MDMwMzM3NTQ2IDI2NzcyMTI0MDY1Mjc5MDEgMTAwMDYwMzU5MTEwMjYyMw==