/**
  * Parses the application configuration
  *
  * @param ReaderInterface $reader
  *
  * @return Configuration the parsed configuration
  * @throws InvalidConfigurationException if the configuration couldn't be parsed and validated
  */
 public static function parseConfiguration(ReaderInterface $reader)
 {
     $configuration = $reader->readConfiguration();
     // Validate the configuration
     $validator = new Validator($configuration);
     $validator->validate();
     // Create the configuration object
     $config = new Configuration();
     $config->setDatabasePath($configuration['database_path'])->setLogPath($configuration['log_path'])->setInstances(self::parseInstances($configuration))->setAccessToken($configuration['access_token'])->setUpdateInterval($configuration['update_interval'])->setListenAddress($configuration['listen_address'])->setListenPort($configuration['listen_port'])->setHttpListenPort($configuration['http_listen_port'])->setHttpUsername($configuration['http_username'])->setHttpPassword($configuration['http_password']);
     return $config;
 }
 /**
  * @return Instance
  */
 protected function getTestInstance()
 {
     $instances = $this->configuration->getInstances();
     return $instances[0];
 }
 /**
  * Configures the database
  *
  * @param Configuration   $configuration
  * @param LoggerInterface $logger
  */
 private function configurePropel(Configuration $configuration, LoggerInterface $logger)
 {
     $connectionName = 'tvheadend_status_manager';
     /* @var StandardServiceContainer $serviceContainer */
     $serviceContainer = Propel::getServiceContainer();
     $serviceContainer->checkVersion('2.0.0-dev');
     $serviceContainer->setAdapterClass($connectionName, 'sqlite');
     $manager = new ConnectionManagerSingle();
     $manager->setConfiguration(['classname' => 'Propel\\Runtime\\Connection\\ConnectionWrapper', 'dsn' => 'sqlite:' . $configuration->getDatabasePath(), 'user' => null, 'password' => '', 'attributes' => ['ATTR_EMULATE_PREPARES' => false], 'settings' => ['charset' => 'utf8', 'queries' => []]]);
     $manager->setName($connectionName);
     $serviceContainer->setConnectionManager($connectionName, $manager);
     $serviceContainer->setDefaultDatasource($connectionName);
     $serviceContainer->setLogger($connectionName, $logger);
 }