public function testGetReadConnectionReturnsWriteConnectionIfNoReadConnectionIsSet() { $manager = new ConnectionManagerMasterSlave(); $manager->setWriteConfiguration(array('dsn' => 'sqlite::memory:')); $writeCon = $manager->getWriteConnection(new SqliteAdapter()); $readCon = $manager->getReadConnection(new SqliteAdapter()); $this->assertSame($writeCon, $readCon); }
/** * When master is in transaction then we need to return the master connection for getReadConnection, * otherwise lookup queries fail */ public function testReadConnectionWhenMasterIsInTransaction() { $manager = new ConnectionManagerMasterSlave(); $manager->setWriteConfiguration(array('dsn' => 'sqlite::memory:', 'attributes' => array('ATTR_CASE' => PDO::CASE_UPPER))); $manager->setReadConfiguration(array(array('dsn' => 'sqlite::memory:', 'attributes' => array('ATTR_CASE' => PDO::CASE_LOWER)))); $writeConnection = $manager->getWriteConnection(new SqliteAdapter()); $this->assertFalse($writeConnection->inTransaction()); $this->assertNotSame($writeConnection, $manager->getReadConnection(new SqliteAdapter())); $writeConnection->beginTransaction(); $this->assertSame($writeConnection, $manager->getReadConnection(new SqliteAdapter())); $writeConnection->rollBack(); $writeConnection->beginTransaction(); $this->assertSame($writeConnection, $manager->getReadConnection(new SqliteAdapter())); $writeConnection->commit(); $this->assertNotSame($writeConnection, $manager->getReadConnection(new SqliteAdapter())); }