/**
  * @param array $databases
  * @throws InvalidConfigurationException
  */
 private function createMysqlDatabases(array $databases)
 {
     foreach ($databases as $dbName => $dbConfig) {
         $db = new MysqlDatabase($dbName, $this->dumpDir . DIRECTORY_SEPARATOR . Database::TYPE_MYSQL . DIRECTORY_SEPARATOR . $dbName);
         // user
         if (array_key_exists('user', $dbConfig) and is_string($user = $dbConfig['user'])) {
             $db->setUser(trim($user));
         } else {
             throw new InvalidConfigurationException('User configuration not found!');
         }
         //password
         if (array_key_exists('password', $dbConfig) and strlen($password = (string) $dbConfig['password']) !== 0) {
             $db->setPassword(trim($password));
         }
         // compression-type
         if (array_key_exists('compression_type', $dbConfig) and in_array($compressionType = $dbConfig['compression_type'], array(Database::COMPRESSION_TYPE_BZIP2, Database::COMPRESSION_TYPE_GZIP, Database::COMPRESSION_TYPE_NONE))) {
             $db->setCompressionType($compressionType);
         } else {
             $db->setCompressionType(Database::COMPRESSION_TYPE_BZIP2);
         }
         // compression-level
         if (array_key_exists('compression_level', $dbConfig) and in_array($compressionLevel = $dbConfig['compression_level'], array(Database::COMPRESSION_LEVEL_LOW, Database::COMPRESSION_LEVEL_MED, Database::COMPRESSION_LEVEL_HIGH))) {
             $db->setCompressionLevel($compressionLevel);
         } else {
             $db->setCompressionLevel(Database::COMPRESSION_LEVEL_MED);
         }
         $this->dumpConfiguration[Database::TYPE_MYSQL][] = $db;
     }
 }
 public function testGetDatabaseName()
 {
     $database = new MysqlDatabase('test', $this->basePath . DIRECTORY_SEPARATOR . 'test');
     $database->setUser('root');
     $dumper = new MysqlDump($database);
     $this->assertInternalType('string', $databaseName = $dumper->getDatabaseName());
     $this->assertSame('test', $databaseName);
 }