Added Container unit test
parent
abb99bf36c
commit
2cb636b651
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace Engelsystem\Test\Config;
|
||||
|
||||
use Engelsystem\Container\Container;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class ContainerTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @covers \Engelsystem\Container\Container::get
|
||||
*/
|
||||
public function testGet()
|
||||
{
|
||||
$container = new Container();
|
||||
$class = new class
|
||||
{
|
||||
};
|
||||
|
||||
$container->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());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue