/** * test that fixtures don't duplicate the test db prefix. * * @return void */ public function testInitDbPrefixDuplication() { $this->skipIf($this->db instanceof Sqlite, 'Cannot open 2 connections to Sqlite'); $db = ConnectionManager::getDataSource('test'); $backPrefix = $db->config['prefix']; $db->config['prefix'] = 'cake_fixture_test_'; ConnectionManager::create('fixture_test_suite', $db->config); $newDb = ConnectionManager::getDataSource('fixture_test_suite'); $newDb->config['prefix'] = 'cake_fixture_test_'; $Source = new CakeTestFixtureTestFixture(); $Source->create($db); $Source->insert($db); $Fixture = new CakeTestFixtureImportFixture(); $Fixture->fields = $Fixture->records = $Fixture->table = null; $Fixture->import = array('model' => 'FixtureImportTestModel', 'connection' => 'test'); $Fixture->init(); $this->assertEquals(array('id', 'name', 'created'), array_keys($Fixture->fields)); $this->assertEquals('fixture_tests', $Fixture->table); $Source->drop($db); $db->config['prefix'] = $backPrefix; }
/** * testInit * * @access public * @return void */ function testInit() { $Fixture = new CakeTestFixtureTestFixture(); unset($Fixture->table); $Fixture->init(); $this->assertEqual($Fixture->table, 'fixture_tests'); $this->assertEqual($Fixture->primaryKey, 'id'); $Fixture = new CakeTestFixtureTestFixture(); $Fixture->primaryKey = 'my_random_key'; $Fixture->init(); $this->assertEqual($Fixture->primaryKey, 'my_random_key'); $this->_initDb(); $Source = new CakeTestFixtureTestFixture(); $Source->create($this->db); $Source->insert($this->db); $Fixture = new CakeTestFixtureImportFixture(); $expected = array('id', 'name', 'created'); $this->assertEqual(array_keys($Fixture->fields), $expected); $db = ConnectionManager::getDataSource('test_suite'); $config = $db->config; $config['prefix'] = 'fixture_test_suite_'; ConnectionManager::create('fixture_test_suite', $config); $Fixture->fields = $Fixture->records = null; $Fixture->import = array('table' => 'fixture_tests', 'connection' => 'test_suite', 'records' => true); $Fixture->init(); $this->assertEqual(count($Fixture->records), count($Source->records)); $Fixture = new CakeTestFixtureImportFixture(); $Fixture->fields = $Fixture->records = null; $Fixture->import = array('model' => 'FixtureImportTestModel', 'connection' => 'test_suite'); $Fixture->init(); $this->assertEqual(array_keys($Fixture->fields), array('id', 'name', 'created')); $keys = array_flip(ClassRegistry::keys()); $this->assertFalse(array_key_exists('fixtureimporttestmodel', $keys)); $Source->drop($this->db); }