/** * testTablePrefixSwitching method * * @return void */ public function testTablePrefixSwitching() { ConnectionManager::create('database1', array_merge($this->db->config, array('prefix' => 'aaa_'))); ConnectionManager::create('database2', array_merge($this->db->config, array('prefix' => 'bbb_'))); $db1 = ConnectionManager::getDataSource('database1'); $db2 = ConnectionManager::getDataSource('database2'); $TestModel = new Restaurant(); $TestModel->setDataSource('database1'); $this->assertContains('aaa_apples', $this->db->fullTableName($TestModel)); $this->assertContains('aaa_apples', $db1->fullTableName($TestModel)); $this->assertContains('aaa_apples', $db2->fullTableName($TestModel)); $TestModel->setDataSource('database2'); $this->assertContains('bbb_apples', $this->db->fullTableName($TestModel)); $this->assertContains('bbb_apples', $db1->fullTableName($TestModel)); $this->assertContains('bbb_apples', $db2->fullTableName($TestModel)); $TestModel = new Restaurant(); $TestModel->tablePrefix = 'custom_'; $this->assertContains('custom_apples', $this->db->fullTableName($TestModel)); $TestModel->setDataSource('database1'); $this->assertContains('custom_apples', $this->db->fullTableName($TestModel)); $this->assertContains('custom_apples', $db1->fullTableName($TestModel)); $TestModel = new Restaurant(); $TestModel->setDataSource('database1'); $this->assertContains('aaa_apples', $this->db->fullTableName($TestModel)); $TestModel->tablePrefix = ''; $TestModel->setDataSource('database2'); $this->assertContains('apples', $db2->fullTableName($TestModel)); $this->assertContains('apples', $db1->fullTableName($TestModel)); $TestModel->tablePrefix = null; $TestModel->setDataSource('database1'); $this->assertContains('aaa_apples', $db2->fullTableName($TestModel)); $this->assertContains('aaa_apples', $db1->fullTableName($TestModel)); $TestModel->tablePrefix = false; $TestModel->setDataSource('database2'); $this->assertContains('apples', $db2->fullTableName($TestModel)); $this->assertContains('apples', $db1->fullTableName($TestModel)); }