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