function testSettingExistingParentMakesExistingObjectDirty() { $course = new CourseForTest(); $course->setTitle('course'); $course->save(); $lecture = new LectureForTest(); $lecture->setTitle('test'); $lecture->save(); $lecture->setCourse($course); $this->assertTrue($lecture->isDirty()); $lecture->save(); $lecture2 = new LectureForTest($lecture->getId()); $this->assertEqual($lecture2->getCourse()->getTitle(), $course->getTitle()); }
function testChangingParentIdRelationFieldDirectlyDoesNotWorkIfParentObjectIsDirty() { $course1 = $this->_initCourse(); $course1->save(); $course2 = $this->_initCourse(); $course2->save(); $lecture = new LectureForTest(); $lecture->setTitle('Physics'); $lecture->setCourse($course1); $lecture->save(); $lecture2 = new LectureForTest($lecture->getId()); $this->assertEqual($lecture2->getCourse()->getId(), $course1->getId()); $lecture2->set('course_id', $course2->getId()); $lecture2->setCourse($course1); $lecture2->save(); $lecture3 = new LectureForTest($lecture->getId()); $this->assertEqual($lecture3->getCourse()->getId(), $course1->getId()); }
function testImportWhereOne2ManyParentIsObject() { $course = new CourseForTest(); $course->setTitle('Some course'); $l = new LectureForTest(); $l->setTitle('Physics'); $l->setCourse($course); $l->save(); $source = array('title' => $l->getTitle(), 'course' => $course); $l2 = new LectureForTest(); $l2->import($source); $this->assertEqual($l2->getTitle(), $l->getTitle()); $this->assertEqual($l2->getCourse()->getTitle(), $course->getTitle()); }