/**
     * Creates a new test database
     *
     * @param ezpDsn $dsn
     * @param array $sqlFiles array( array( string => string ) )
     * @param bool $removeExisting
     * @return mixed
     */
    public static function create( ezpDsn $dsn )
    {
        //oracle unit test doesn't support creating database, just use database string
        if ( $dsn->parts['phptype'] === 'oracle' )
        {
            $db = ezpDatabaseHelper::useDatabase( $dsn );
            eZDBTool::cleanup( $db );
            return $db;
        }

        $dbRoot = ezpDatabaseHelper::dbAsRootInstance( $dsn );

        if ( self::exists( $dbRoot, $dsn->database ) )
        {
            $db = ezpDatabaseHelper::useDatabase( $dsn );
            self::clean( $db );
        }
        else
        {
            $dbRoot->createDatabase( $dsn->database );
            $db = ezpDatabaseHelper::useDatabase( $dsn );
        }

        return $db;
    }
 /**
  * Creates a new test database
  *
  * @param ezpDsn $dsn
  * @param array $sqlFiles array( array( string => string ) )
  * @param bool $removeExisting
  * @return mixed
  */
 public static function create(ezpDsn $dsn)
 {
     //oracle unit test doesn't support creating database, just use database string
     if ($dsn->parts['phptype'] === 'oracle') {
         $db = ezpDatabaseHelper::useDatabase($dsn);
         eZDBTool::cleanup($db);
         return $db;
     }
     $dsnRoot = clone $dsn;
     $dsnRoot->parts['database'] = null;
     try {
         $dbRoot = ezpDatabaseHelper::dbAsRootInstance($dsnRoot);
         if (!$dbRoot->IsConnected) {
             throw new Exception($dbRoot->ErrorMessage);
         }
     } catch (Exception $e) {
         echo $e->getMessage() . PHP_EOL;
         eZExecution::cleanExit();
     }
     if (self::exists($dbRoot, $dsn->database)) {
         $db = ezpDatabaseHelper::useDatabase($dsn);
         self::clean($db);
     } else {
         $dbRoot->createDatabase($dsn->database);
         $db = ezpDatabaseHelper::useDatabase($dsn);
     }
     return $db;
 }