/**
  * @param string $config
  *
  * @CakeDbConfig
  */
 public function __construct($config)
 {
     if (is_array($config)) {
         $this->config = $config;
         return;
     }
     if (!class_exists('Cake\\Datasource\\ConnectionManager')) {
         throw new \InvalidArgumentException('Could not parse configuration for @CakeDbConfig');
     }
     if (strpos($config, '://') !== false) {
         $this->config = ConnectionManager::parseDsn($config);
         return;
     }
     $this->config = $config;
 }
 /**
  * Test parseDsn method.
  *
  * @return void
  */
 public function testParseDsn()
 {
     $result = ConnectionManager::parseDsn('mysql://*****:*****@localhost:3306/database?log=1');
     $expected = ['scheme' => 'mysql', 'className' => 'Cake\\Database\\Connection', 'driver' => 'Cake\\Database\\Driver\\Mysql', 'host' => 'localhost', 'username' => 'root', 'password' => 'secret', 'port' => 3306, 'database' => 'database', 'log' => '1'];
     $this->assertEquals($expected, $result);
 }