/**
  * @param array $parameters
  *
  * @throws \RuntimeException
  */
 public function __construct(array $parameters)
 {
     $reader = new AdapterParameterReader($parameters);
     if (false === $reader->isValid()) {
         throw new \RuntimeException('Provided configuration is invalid');
     }
     if (true === empty($this->adapterMap[$reader->getType()])) {
         throw new \RuntimeException('Database type is not supported.');
     }
     $phinxParameters = array_merge(['user' => $parameters[Reader::USER], 'pass' => $parameters[Reader::PASS], 'name' => $parameters[Reader::DATABASE][Reader::DB_NAME], 'charset' => $this->getDefaultCharset($parameters), 'default_migration_table' => $this->getMigrationTable($parameters)], $parameters[Reader::DATABASE]);
     $this->adapter = $this->getNewAdapterInstance($phinxParameters, $reader->getType());
 }
 /**
  * @test
  */
 public function testGetType()
 {
     $config = $this->getSqliteConfig();
     $adapter = new AdapterParameterReader($config);
     $this->assertSame('sqlite', $adapter->getType());
 }