/**
  * @expectedException NotSupportedException
  */
 public function testGetDatabaseDefaultPort()
 {
     $mysqlDatabaseDefaultPort = DatabaseCompatibilityUtil::getDatabaseDefaultPort('mysql');
     $this->assertEquals(3306, $mysqlDatabaseDefaultPort);
     $mysqlDatabaseDefaultPort = DatabaseCompatibilityUtil::getDatabaseDefaultPort('pgsql');
 }
 /**
  *
  * @param string $dsn
  * @throws NotSupportedException
  * @return multitype:array
  */
 public static function getDatabaseInfoFromDsnString($dsn)
 {
     assert(preg_match("/^([^;]+):host=([^;]+);(?:port=([^;]+);)?dbname=([^;]+)/", $dsn, $matches) == 1);
     // Not Coding Standard
     if (count($matches) == 5) {
         if (empty($matches['3'])) {
             $databaseType = $matches['1'];
             $databasePort = DatabaseCompatibilityUtil::getDatabaseDefaultPort($databaseType);
         } else {
             $databasePort = $matches['3'];
         }
         $databaseConnectionInfo = array('databaseType' => $matches['1'], 'databaseHost' => $matches['2'], 'databasePort' => intval($databasePort), 'databaseName' => $matches['4']);
         return $databaseConnectionInfo;
     } else {
         throw new NotSupportedException();
     }
 }