/** * 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; }