/**
  * Retrieve database connection object
  *
  * @param   bool connect default TRUE
  * @return  rdbms.DBConnection
  */
 protected function db($connect = true)
 {
     with($db = DriverManager::getConnection($this->dsn));
     if ($connect) {
         $db->connect();
     }
     return $db;
 }
 public function registerOverwritesPreviouslyRegistered()
 {
     $conn1 = DriverManager::getConnection('mock://*****:*****@host/db1');
     $conn2 = DriverManager::getConnection('mock://*****:*****@host/db2');
     $cm = $this->instanceWith([]);
     $this->assertEquals($conn1, $cm->register($conn1));
     $this->assertEquals($conn2, $cm->register($conn2));
     $this->assertEquals($conn2, $cm->getByHost('host', 0));
 }
Beispiel #3
0
 /**
  * Setup method
  */
 public function setUp()
 {
     with($conn = \rdbms\DriverManager::getConnection('mock://mock/JOBS?autoconnect=1'));
     Job::getPeer()->setConnection($conn);
     Person::getPeer()->setConnection($conn);
     $this->qa = new SelectQuery();
     $this->qa->setPeer(Job::getPeer());
     $this->qa->setCriteria((new Criteria(Job::column('job_id')->equal(5)))->setProjection(\rdbms\criterion\Projections::ProjectionList()->add(Job::column('job_id'))->add(Job::column('title'))));
     $this->qb = new SelectQuery();
     $this->qb->setPeer(Person::getPeer());
     $this->qb->setCriteria((new Criteria())->setProjection(\rdbms\criterion\Projections::ProjectionList()->add(Person::column('job_id'))->add(Person::column('name'))));
 }
Beispiel #4
0
 /**
  * Entry point
  *
  * @param   string[] args
  */
 public static function main(array $args)
 {
     $db = DriverManager::getConnection($args[0]);
     try {
         $db->connect();
         $tran = $db->begin(new \rdbms\Transaction('process'));
         Console::$out->writeLine('! Started');
         while ($sql = Console::$in->readLine()) {
             $db->query($sql);
             Console::$out->writeLine('+ OK');
         }
         $tran->commit();
     } catch (\rdbms\SQLException $e) {
         Console::$out->writeLine('- ', nameof($e));
     }
 }
Beispiel #5
0
 /**
  * Setup function
  */
 public function setUp()
 {
     $this->conn = DriverManager::getConnection('mock://mock/MOCKDB?autoconnect=0');
     $this->assertEquals(0, $this->conn->flags & DB_AUTOCONNECT);
 }
 /**
  * Setup method
  */
 public function setUp()
 {
     $this->fixture = new JobFinder();
     $this->fixture->getPeer()->setConnection(DriverManager::getConnection('mock://mock/JOBS?autoconnect=1'));
 }
 /**
  * Setup method
  */
 public function setUp()
 {
     $this->conn = DriverManager::getConnection('mock://mock/JOBS?autoconnect=1');
     $this->peer = Job::getPeer();
     $this->peer->setConnection(DriverManager::getConnection('mock://mock/JOBS?autoconnect=1'));
 }
 /**
  * Replace registered DSN with DBConnection if needed
  *
  * @param   string name name of connection
  * @param   var value either DSN or DBConnection
  * @return  rdbms.DBConnection
  */
 protected function conn($name, $value)
 {
     if ($value instanceof DBConnection) {
         return $value;
     }
     if (is_string($value)) {
         // Resolve lazy-loading DSNs
         $this->pool[$name] = DriverManager::getConnection($value);
         return $this->pool[$name];
     }
     throw new DriverNotSupportedException('Neither a connection string nor a rdbms.DBConnection given.');
 }
 /**
  * Setup method
  */
 public function setUp()
 {
     Job::getPeer()->setConnection(DriverManager::getConnection('mock://mock/JOBS?autoconnect=1'));
 }
 public function connectFailedThrowsException()
 {
     DriverManager::getConnection(str_replace(':' . $this->db(false)->dsn->getPassword() . '@', ':hopefully-wrong-password@', $this->dsn))->connect();
 }
 public function searchImplementation()
 {
     // Should not be found
     $this->register('tests', \lang\XPClass::forName('net.xp_framework.unittest.rdbms.mock.MockConnection'));
     // Should choose the "a" implementation
     $this->register('test+a', \lang\ClassLoader::defineClass('net.xp_framework.unittest.rdbms.mock.AMockConnection', 'net.xp_framework.unittest.rdbms.mock.MockConnection', array(), '{}'));
     $this->register('test+b', \lang\ClassLoader::defineClass('net.xp_framework.unittest.rdbms.mock.BMockConnection', 'net.xp_framework.unittest.rdbms.mock.MockConnection', array(), '{}'));
     $this->assertInstanceOf('net.xp_framework.unittest.rdbms.mock.AMockConnection', DriverManager::getConnection('test://localhost'));
 }
 public static function registerMockConnection()
 {
     \rdbms\DriverManager::register('mock', \lang\XPClass::forName('net.xp_framework.unittest.rdbms.mock.MockConnection'));
     Job::getPeer()->setConnection(\rdbms\DriverManager::getConnection('mock://mock/JOBS?autoconnect=1'));
 }
 public function connectFailedThrowsException()
 {
     $dsn = new DSN($this->dsn);
     $dsn->url->setUser('wrong-user');
     $dsn->url->setPassword('wrong-password');
     DriverManager::getConnection($dsn)->connect();
 }
 function regressionIteratorDatasetType()
 {
     $conn = DriverManager::getConnection('mock://mock/JOBS?autoconnect=1');
     $conn->setResultSet(new MockResultSet([['count' => 5]]));
     $crit = (new Criteria())->withProjection(Projections::count('*'));
     $this->peer->setConnection($conn);
     $this->assertInstanceOf(Record::class, $this->peer->iteratorFor($crit)->next());
 }
 public static function registerMockConnection()
 {
     DriverManager::register('mock', XPClass::forName('rdbms.unittest.mock.MockConnection'));
     Job::getPeer()->setConnection(DriverManager::getConnection('mock://mock/JOBS?autoconnect=1'));
 }