/**
  * setUpBeforeClass
  *
  * @throws \LogicException
  * @return  void
  */
 public static function setUpBeforeClass()
 {
     if (!static::$driver) {
         throw new \LogicException('static::$driver variable is empty.');
     }
     static::$dsn = $dsn = TestDsnResolver::getDsn(static::$driver);
     if (!$dsn) {
         static::markTestSkipped('DSN of driver ' . static::$driver . ' not available');
     }
     static::$dbname = $dbname = isset($dsn['dbname']) ? $dsn['dbname'] : null;
     if (!$dbname) {
         throw new \LogicException(sprintf('No dbname in %s DSN', static::$driver));
     }
     // Id db exists, return.
     if (static::$dbo) {
         static::$dbo->select($dbname);
         return;
     }
     try {
         // Use factory create dbo, only create once and will be singleton.
         $db = self::$dbo = DatabaseFactory::getDbo(static::$driver, array('host' => isset($dsn['host']) ? $dsn['host'] : null, 'user' => isset($dsn['user']) ? $dsn['user'] : null, 'password' => isset($dsn['pass']) ? $dsn['pass'] : null, 'port' => isset($dsn['port']) ? $dsn['port'] : null, 'prefix' => isset($dsn['prefix']) ? $dsn['prefix'] : null));
     } catch (\RangeException $e) {
         static::markTestSkipped($e->getMessage());
         return;
     }
     $database = $db->getDatabase($dbname);
     if (static::$debug) {
         $database->drop(true);
     }
     $database->create(true);
     $db->select($dbname);
     $queries = file_get_contents(__DIR__ . '/Stub/' . static::$driver . '.sql');
     DatabaseHelper::batchQuery($db, $queries);
 }
예제 #2
0
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  *
  * @return void
  */
 protected function setUp()
 {
     $dsn = TestDsnResolver::getDsn('mysql');
     if ($dsn) {
         $this->pdo = new \PDO('mysql:host=localhost;', $dsn['user'], $dsn['pass']);
     }
     $this->instance = new MysqlQuery($this->pdo);
 }
예제 #3
0
 /**
  * getOptions
  *
  * @return  array
  */
 public static function getOptions()
 {
     // Only use mysql to test
     $dsn = TestDsnResolver::getDsn('mysql');
     if ($dsn === false) {
         return false;
     }
     $options = array('host' => $dsn['host'], 'user' => $dsn['user'], 'password' => $dsn['pass']);
     return $options;
 }