instance('foo', $class); $this->assertSame($class, $container->get('foo')); } /** * @covers \Engelsystem\Container\Container::get * @expectedException \Engelsystem\Container\NotFoundException */ public function testGetException() { $container = new Container(); $container->get('not.registered.service'); } /** * @covers \Engelsystem\Container\Container::instance * @covers \Engelsystem\Container\Container::resolve */ public function testInstance() { $container = new Container(); $class = new class { }; $container->instance('foo', $class); $this->assertSame($class, $container->get('foo')); } /** * @covers \Engelsystem\Container\Container::has */ public function testHas() { $container = new Container(); $this->assertFalse($container->has('test')); $class = new class { }; $container->instance('test', $class); $this->assertTrue($container->has('test')); } /** * @covers \Engelsystem\Container\Container::singleton */ public function testSingleton() { $container = new Container(); $class = new class { }; $container->singleton('foo', $class); $this->assertSame($class, $container->get('foo')); $this->assertSame($class, $container->get('foo')); } /** * @covers \Engelsystem\Container\Container::setInstance * @covers \Engelsystem\Container\Container::getInstance */ public function testContainerSingleton() { $container0 = new Container(); $container = Container::getInstance(); $this->assertNotSame($container0, $container); $container1 = new Container; Container::setInstance($container1); $this->assertSame($container1, Container::getInstance()); } }