Example #1
0
 /**
  * Constructor.
  *
  * @param string $pdoDriver Choose between a sqlite of mysql database.
  */
 public function __construct($pdoDriver = 'sqlite')
 {
     parent::__construct();
     // Voorkom dat de default connectie gebruikt wordt.
     if (isset(Connection::$instances['default'])) {
         Connection::$instances['_default_backup'] = Connection::$instances['default'];
         Connection::$instances['default'] = 'INVALID';
     }
     if (\Sledgehammer\ENVIRONMENT !== 'phpunit') {
         return;
     }
     if ($this->dbLink == '__NOT_CONNECTED__') {
         $parts = explode('\\', get_class($this));
         $class = preg_replace('/Tests$/', '', array_pop($parts));
         // Classname without namespace and "Tests" suffix
         $this->dbName = 'unittest_' . preg_replace('/[^0-9a-z_]*/i', '', $class);
         // Genereer databasenaam
         $this->dbLink = $this->dbName;
         switch ($pdoDriver) {
             case 'mysql':
                 $this->dbLink .= '_' . $_SERVER['HTTP_HOST'];
                 $db = new Connection('mysql://*****:*****@localhost', null, null, array('logIdentifier' => substr($this->dbLink, 9)));
                 $db->reportWarnings = false;
                 $db->query('DROP DATABASE IF EXISTS ' . $this->dbName);
                 $db->query('CREATE DATABASE ' . $this->dbName);
                 $db->query('USE ' . $this->dbName);
                 break;
             case 'sqlite':
                 $db = new Connection('sqlite::memory:', null, null, array('logIdentifier' => substr($this->dbLink, 9)));
                 break;
             default:
                 throw new Exception('Unsupported pdoDriver');
         }
         Connection::$instances[$this->dbLink] = $db;
         if ($this->skipRebuildDatabase) {
             $this->fillDatabase($db);
             if ($pdoDriver === 'mysql') {
                 $db->reportWarnings = true;
             }
         }
     }
 }