Ejemplo n.º 1
0
 /**
  * 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));
 }