| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | 
							- <?php
 - 
 - namespace Doctrine\Tests;
 - 
 - /**
 -  * TestUtil is a class with static utility methods used during tests.
 -  *
 -  * @author robo
 -  */
 - class TestUtil
 - {
 -     /**
 -      * Gets a <b>real</b> database connection using the following parameters
 -      * of the $GLOBALS array:
 -      *
 -      * 'db_type' : The name of the Doctrine DBAL database driver to use.
 -      * 'db_username' : The username to use for connecting.
 -      * 'db_password' : The password to use for connecting.
 -      * 'db_host' : The hostname of the database to connect to.
 -      * 'db_name' : The name of the database to connect to.
 -      * 'db_port' : The port of the database to connect to.
 -      *
 -      * Usually these variables of the $GLOBALS array are filled by PHPUnit based
 -      * on an XML configuration file. If no such parameters exist, an SQLite
 -      * in-memory database is used.
 -      *
 -      * IMPORTANT:
 -      * 1) Each invocation of this method returns a NEW database connection.
 -      * 2) The database is dropped and recreated to ensure it's clean.
 -      *
 -      * @return \Doctrine\DBAL\Connection The database connection instance.
 -      */
 -     public static function getConnection()
 -     {
 -         if (isset($GLOBALS['db_type'], $GLOBALS['db_username'], $GLOBALS['db_password'],
 -                 $GLOBALS['db_host'], $GLOBALS['db_name'], $GLOBALS['db_port']) &&
 -            isset($GLOBALS['tmpdb_type'], $GLOBALS['tmpdb_username'], $GLOBALS['tmpdb_password'],
 -                 $GLOBALS['tmpdb_host'], $GLOBALS['tmpdb_name'], $GLOBALS['tmpdb_port'])) {
 -             $realDbParams = array(
 -                 'driver' => $GLOBALS['db_type'],
 -                 'user' => $GLOBALS['db_username'],
 -                 'password' => $GLOBALS['db_password'],
 -                 'host' => $GLOBALS['db_host'],
 -                 'dbname' => $GLOBALS['db_name'],
 -                 'port' => $GLOBALS['db_port']
 -             );
 -             $tmpDbParams = array(
 -                 'driver' => $GLOBALS['tmpdb_type'],
 -                 'user' => $GLOBALS['tmpdb_username'],
 -                 'password' => $GLOBALS['tmpdb_password'],
 -                 'host' => $GLOBALS['tmpdb_host'],
 -                 'dbname' => $GLOBALS['tmpdb_name'],
 -                 'port' => $GLOBALS['tmpdb_port']
 -             );
 - 
 -             if (isset($GLOBALS['db_unix_socket'])) {
 -                 $realDbParams['unix_socket'] = $GLOBALS['db_unix_socket'];
 -             }
 - 
 -             if (isset($GLOBALS['tmpdb_unix_socket'])) {
 -                 $tmpDbParams['unix_socket'] = $GLOBALS['tmpdb_unix_socket'];
 -             }
 - 
 -             $realConn = \Doctrine\DBAL\DriverManager::getConnection($realDbParams);
 - 
 -             $platform  = $realConn->getDatabasePlatform();
 - 
 -             if ($platform->supportsCreateDropDatabase()) {
 -                 $dbname = $realConn->getDatabase();
 -                 // Connect to tmpdb in order to drop and create the real test db.
 -                 $tmpConn = \Doctrine\DBAL\DriverManager::getConnection($tmpDbParams);
 -                 $realConn->close();
 - 
 -                 $tmpConn->getSchemaManager()->dropAndCreateDatabase($dbname);
 - 
 -                 $tmpConn->close();
 -             } else {
 -                 $sm = $realConn->getSchemaManager();
 - 
 -                 /* @var $schema Schema */
 -                 $schema = $sm->createSchema();
 -                 $stmts = $schema->toDropSql($realConn->getDatabasePlatform());
 - 
 -                 foreach ($stmts AS $stmt) {
 -                     $realConn->exec($stmt);
 -                 }
 -             }
 - 
 -             $conn = \Doctrine\DBAL\DriverManager::getConnection($realDbParams, null, null);
 -         } else {
 -             $params = array(
 -                 'driver' => 'pdo_sqlite',
 -                 'memory' => true
 -             );
 -             if (isset($GLOBALS['db_path'])) {
 -                 $params['path'] = $GLOBALS['db_path'];
 -                 unlink($GLOBALS['db_path']);
 -             }
 -             $conn = \Doctrine\DBAL\DriverManager::getConnection($params);
 -         }
 - 
 -         if (isset($GLOBALS['db_event_subscribers'])) {
 -             $evm = $conn->getEventManager();
 -             foreach (explode(",", $GLOBALS['db_event_subscribers']) AS $subscriberClass) {
 -                 $subscriberInstance = new $subscriberClass();
 -                 $evm->addEventSubscriber($subscriberInstance);
 -             }
 -         }
 - 
 -         return $conn;
 -     }
 - 
 -     /**
 -      * @return \Doctrine\DBAL\Connection
 -      */
 -     public static function getTempConnection()
 -     {
 -         $tmpDbParams = array(
 -             'driver' => $GLOBALS['tmpdb_type'],
 -             'user' => $GLOBALS['tmpdb_username'],
 -             'password' => $GLOBALS['tmpdb_password'],
 -             'host' => $GLOBALS['tmpdb_host'],
 -             'dbname' => $GLOBALS['tmpdb_name'],
 -             'port' => $GLOBALS['tmpdb_port']
 -         );
 - 
 -         // Connect to tmpdb in order to drop and create the real test db.
 -         return \Doctrine\DBAL\DriverManager::getConnection($tmpDbParams);
 -     }
 - }
 
 
  |