esi_configuration = new EsiConfiguration; } public function testEsiConfigurationInstantiation() { $instance = new EsiConfiguration; $this->assertInstanceOf(EsiConfiguration::class, $instance); } public function testFreshEsiConfigurationInstanceIsValid() { $this->assertTrue($this->esi_configuration->valid()); } public function testEsiConfigurationCanAccessAsArrayKey() { $this->assertArrayHasKey('datasource', $this->esi_configuration); } public function testEsiConfigurationCanAccessAsObjectProperty() { $datasource = $this->esi_configuration->datasource; $this->assertEquals('tranquility', $datasource); } public function testCanSetAndAccessConfigurationValueAsArrayKey() { $configuration = new EsiConfiguration; $configuration['test'] = 'test'; $this->assertEquals('test', $configuration['test']); } public function testCanSetAndAccessConfigurationValueAsObjectProperty() { $configuration = new EsiConfiguration; $configuration->test = 'test'; $this->assertEquals('test', $configuration->test); } public function testEsiConfigurationContainerConstructWithValuePasses() { $configuration = new EsiConfiguration([ 'datasource' => 'tranquility', ]); $this->assertInstanceOf(EsiConfiguration::class, $configuration); } public function testEsiConfigurationContainerConstructWithUnknownKeyFails() { $this->expectException(InvalidContainerDataException::class); new EsiConfiguration([ 'foo' => 'bar', ]); } /** * @param $key The key to check for existence * * @dataProvider providerTestRequiredKeysExists */ public function testRequiredKeysExists($key) { $configuration = new EsiConfiguration; $this->assertArrayHasKey($key, $configuration); } /** * Keys that _should_ exists in a new Configuration instance * * @return array */ public function providerTestRequiredKeysExists() { return [ ['http_user_agent'], ['datasource'], ['logger'], ['logger_level'], ['logfile_location'], ['cache'], ]; } }