/** * Tests that $cacheSources can only be disabled in the db using model settings, not enabled * * @access public * @return void */ function testCacheSourcesDisabling() { $this->db->cacheSources = true; $TestModel = new JoinA(); $TestModel->cacheSources = false; $TestModel->setSource('join_as'); $this->assertFalse($this->db->cacheSources); $this->db->cacheSources = false; $TestModel = new JoinA(); $TestModel->cacheSources = true; $TestModel->setSource('join_as'); $this->assertFalse($this->db->cacheSources); }
/** * testSaveMultipleHabtm method * * @return void */ public function testSaveMultipleHabtm() { $this->loadFixtures('JoinA', 'JoinB', 'JoinC', 'JoinAB', 'JoinAC'); $TestModel = new JoinA(); $result = $TestModel->findById(1); $expected = array('JoinA' => array('id' => 1, 'name' => 'Join A 1', 'body' => 'Join A 1 Body', 'created' => '2008-01-03 10:54:23', 'updated' => '2008-01-03 10:54:23'), 'JoinB' => array(0 => array('id' => 2, 'name' => 'Join B 2', 'created' => '2008-01-03 10:55:02', 'updated' => '2008-01-03 10:55:02', 'JoinAsJoinB' => array('id' => 1, 'join_a_id' => 1, 'join_b_id' => 2, 'other' => 'Data for Join A 1 Join B 2', 'created' => '2008-01-03 10:56:33', 'updated' => '2008-01-03 10:56:33'))), 'JoinC' => array(0 => array('id' => 2, 'name' => 'Join C 2', 'created' => '2008-01-03 10:56:12', 'updated' => '2008-01-03 10:56:12', 'JoinAsJoinC' => array('id' => 1, 'join_a_id' => 1, 'join_c_id' => 2, 'other' => 'Data for Join A 1 Join C 2', 'created' => '2008-01-03 10:57:22', 'updated' => '2008-01-03 10:57:22')))); $this->assertEquals($expected, $result); $TestModel->id = 1; $data = array('JoinA' => array('id' => '1', 'name' => 'New name for Join A 1', 'updated' => self::date()), 'JoinB' => array(array('id' => 1, 'join_b_id' => 2, 'other' => 'New data for Join A 1 Join B 2', 'created' => self::date(), 'updated' => self::date())), 'JoinC' => array(array('id' => 1, 'join_c_id' => 2, 'other' => 'New data for Join A 1 Join C 2', 'created' => self::date(), 'updated' => self::date()))); $TestModel->set($data); $TestModel->save(); $result = $TestModel->findById(1); $expected = array('JoinA' => array('id' => 1, 'name' => 'New name for Join A 1', 'body' => 'Join A 1 Body', 'created' => '2008-01-03 10:54:23', 'updated' => self::date()), 'JoinB' => array(0 => array('id' => 2, 'name' => 'Join B 2', 'created' => '2008-01-03 10:55:02', 'updated' => '2008-01-03 10:55:02', 'JoinAsJoinB' => array('id' => 1, 'join_a_id' => 1, 'join_b_id' => 2, 'other' => 'New data for Join A 1 Join B 2', 'created' => self::date(), 'updated' => self::date()))), 'JoinC' => array(0 => array('id' => 2, 'name' => 'Join C 2', 'created' => '2008-01-03 10:56:12', 'updated' => '2008-01-03 10:56:12', 'JoinAsJoinC' => array('id' => 1, 'join_a_id' => 1, 'join_c_id' => 2, 'other' => 'New data for Join A 1 Join C 2', 'created' => self::date(), 'updated' => self::date())))); $this->assertEquals($expected, $result); }
/** * test deleteLinks with Multiple habtm associations * * @return void */ public function testDeleteLinksWithMultipleHabtmAssociations() { $this->loadFixtures('JoinA', 'JoinB', 'JoinC', 'JoinAB', 'JoinAC'); $JoinA = new JoinA(); //create two new join records to expose the issue. $JoinA->JoinAsJoinC->create(array('join_a_id' => 1, 'join_c_id' => 2)); $JoinA->JoinAsJoinC->save(); $JoinA->JoinAsJoinB->create(array('join_a_id' => 1, 'join_b_id' => 2)); $JoinA->JoinAsJoinB->save(); $result = $JoinA->delete(1); $this->assertTrue($result, 'Delete failed %s'); $joinedBs = $JoinA->JoinAsJoinB->find('count', array('conditions' => array('JoinAsJoinB.join_a_id' => 1))); $this->assertEquals(0, $joinedBs, 'JoinA/JoinB link records left over. %s'); $joinedBs = $JoinA->JoinAsJoinC->find('count', array('conditions' => array('JoinAsJoinC.join_a_id' => 1))); $this->assertEquals(0, $joinedBs, 'JoinA/JoinC link records left over. %s'); }
/** * Tests that $cacheSources is restored despite the settings on the model. * * @return void */ public function testCacheSourcesRestored() { $this->loadFixtures('JoinA', 'JoinB', 'JoinAB', 'JoinC', 'JoinAC'); $this->db->cacheSources = true; $TestModel = new JoinA(); $TestModel->cacheSources = false; $TestModel->setSource('join_as'); $this->assertTrue($this->db->cacheSources); $this->db->cacheSources = false; $TestModel = new JoinA(); $TestModel->cacheSources = true; $TestModel->setSource('join_as'); $this->assertFalse($this->db->cacheSources); }