function testNewObjectReturnsEmptyCollection()
 {
     $course = new CourseForTest();
     $lectures = $course->getLectures();
     $lectures->rewind();
     $this->assertFalse($lectures->valid());
 }
Example #2
0
 function testFetch_Attach_RelatedHasMany_WithCriteriaForAttach()
 {
     $course1 = $this->creator->createCourse();
     $course2 = $this->creator->createCourse();
     $lecture1 = $this->creator->createLecture($course1, null, 'ZZZ');
     $lecture2 = $this->creator->createLecture($course2, null, 'CCC');
     $lecture3 = $this->creator->createLecture($course1, null, 'AAA');
     $query = lmbARQuery::create('CourseForTest', array(), $this->conn);
     $arr = $query->eagerAttach('lectures', array('criteria' => lmbSQLCriteria::equal('title', 'CCC')))->fetch()->getArray();
     $this->conn->resetStats();
     $this->assertIsA($arr[0], 'CourseForTest');
     $this->assertEqual($arr[0]->getTitle(), $course1->getTitle());
     $lectures = $arr[0]->getLectures();
     $this->assertEqual(count($lectures), 0);
     $this->assertIsA($arr[1], 'CourseForTest');
     $this->assertEqual($arr[1]->getTitle(), $course2->getTitle());
     $lectures = $arr[1]->getLectures();
     $this->assertEqual(count($lectures), 1);
     $this->assertEqual($lectures[0]->getId(), $lecture2->getId());
     $this->assertEqual($lectures[0]->getTitle(), 'CCC');
     $this->assertEqual($this->conn->countQueries(), 0);
     // let's change the first course and save it. The lectures should stay in database
     $arr[0]->setTitle('Changed');
     $arr[0]->save();
     $loaded_course = new CourseForTest($course1->getId());
     $lectures = $loaded_course->getLectures();
     $this->assertEqual(count($lectures), 2);
 }
Example #3
0
 function testGettingCollectionDoesntMakeObjectDirty()
 {
     $course = new CourseForTest();
     $lectures = $course->getLectures();
     $this->assertFalse($course->isDirty());
 }
Example #4
0
 function testImportResetsExistingOne2ManyCollection()
 {
     $course = new CourseForTest();
     $course->setTitle('Some course');
     $l1 = new LectureForTest();
     $l1->setTitle('Physics');
     $l2 = new LectureForTest();
     $l2->setTitle('Math');
     $course->addToLectures($l1);
     $course->addToLectures($l2);
     $course->save();
     $source = array('title' => $course->getTitle(), 'lectures' => array($l2->getId()));
     $course2 = new CourseForTest($course->getId());
     $course2->import($source);
     $this->assertEqual($course2->getTitle(), $course->getTitle());
     $this->assertEqual($course2->getLectures()->count(), 1);
     $this->assertEqual($course2->getLectures()->at(0)->getTitle(), $l2->getTitle());
 }