assertInstanceOf(Configuration::class, Configuration::getInstance()); } public function testConfigurationSingleton() { $instance1 = Configuration::getInstance(); $instance2 = Configuration::getInstance(); $instance1->setConfiguration(new EsiConfiguration([ 'datasource' => 'test', ])); // Got a feeling this assert is wrong $this->assertNotEquals('', $instance2->getConfiguration()->datasource); } public function testConfigurationGetConfigurationValuesContainer() { $this->assertInstanceOf(EsiConfiguration::class, Configuration::getInstance()->getConfiguration()); } public function testConfigurationSetsNewConfigurationContainerWithValidData() { $configuration = new EsiConfiguration(['http_user_agent' => 'Eseye Library']); $this->assertInstanceOf(EsiConfiguration::class, $configuration); } public function testConfigurationSetsNewConfigurationsContainerWithInvalidData() { $this->expectException(InvalidContainerDataException::class); new EsiConfiguration(['invalid' => 'invalid']); } public function testConfigurationSetsNewConfigurationContainerWithNullData() { $this->expectException(InvalidContainerDataException::class); new EsiConfiguration(['value' => null]); } public function testConfigurationGetsLogger() { $logger = Configuration::getInstance()->getLogger(); $this->assertInstanceOf(LogInterface::class, $logger); } public function testConfigurationGetsCache() { $cache = Configuration::getInstance()->getCache(); $this->assertInstanceOf(CacheInterface::class, $cache); } public function testConfigurationSetsNewValue() { $configuration = Configuration::getInstance(); $configuration->test = 'test'; $this->assertEquals('test', $configuration->test); $this->assertEquals('test', $configuration->getConfiguration()->test); } }