Esempio n. 1
0
 /**
  * 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');
 }
Esempio n. 4
0
 /**
  * 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);
 }