From 366787eb80ea6fe2d2d50e8433e7b814b6bc3d76 Mon Sep 17 00:00:00 2001 From: Khoubza Younes Date: Sun, 22 Jan 2023 21:49:31 +0100 Subject: [PATCH] test: add FlasherContainer tests --- .../Prime/Container/FlasherContainerTest.php | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 tests/Prime/Container/FlasherContainerTest.php diff --git a/tests/Prime/Container/FlasherContainerTest.php b/tests/Prime/Container/FlasherContainerTest.php new file mode 100644 index 00000000..595a4079 --- /dev/null +++ b/tests/Prime/Container/FlasherContainerTest.php @@ -0,0 +1,60 @@ + + */ + +namespace Flasher\Tests\Prime\Container; + +use Flasher\Prime\Container\FlasherContainer; +use Flasher\Tests\Prime\TestCase; + +class FlasherContainerTest extends TestCase +{ + /** + * @return void + */ + public function testInit() + { + $this->setProperty('Flasher\Prime\Container\FlasherContainer', 'instance', null); + $container = $this->getMock('Flasher\Prime\Container\ContainerInterface'); + + FlasherContainer::init($container); + + $property = $this->getProperty('Flasher\Prime\Container\FlasherContainer', 'container'); + + $this->assertEquals($container, $property); + } + + /** + * @return void + */ + public function testCreate() + { + $this->setProperty('Flasher\Prime\Container\FlasherContainer', 'instance', null); + + $container = $this->getMock('Flasher\Prime\Container\ContainerInterface'); + $container + ->method('get') + ->willreturn($this->getMock('Flasher\Prime\FlasherInterface')); + + FlasherContainer::init($container); + + $service = FlasherContainer::create('flasher'); + + $this->assertInstanceOf('Flasher\Prime\FlasherInterface', $service); + } + + /** + * @return void + */ + public function testThrowsExceptionIfNotInitialized() + { + $this->setExpectedException('\LogicException', 'Container is not initialized yet. Container::init() must be called with a real container.'); + + $this->setProperty('Flasher\Prime\Container\FlasherContainer', 'instance', null); + + FlasherContainer::create('flasher'); + } +}