| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * Limb PHP Framework 4 * 5 * @link http://limb-project.com 6 * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com) 7 * @license LGPL http://www.gnu.org/copyleft/lesser.html 8 */ 9 lmb_require('limb/active_record/src/lmbARRecordSetDecorator.class.php'); 10 lmb_require('limb/core/src/lmbCollection.class.php'); 11 require_once(dirname(__FILE__) . '/lmbAROneToManyRelationsTest.class.php'); 12 13 class lmbARRecordSetDecoratorTest extends UnitTestCase 14 { 15 function setUp() 16 { 17 $this->_dbCleanUp(); 18 } 19 20 function tearDown() 21 { 22 $this->_dbCleanUp(); 23 } 24 25 function _dbCleanUp() 26 { 27 lmbActiveRecord :: delete('CourseForTest'); 28 lmbActiveRecord :: delete('LectureForTest'); 29 } 30 31 function testCreateActiveRecordFromCurrentRecord() 32 { 33 $course = $this->_createCourseWithTwoLectures(); 34 35 $db = new lmbSimpleDb(lmbToolkit :: instance()->getDefaultDbConnection()); 36 $decorated = $db->select('lecture_for_test'); 37 38 $iterator = new lmbARRecordSetDecorator($decorated, 'LectureForTest'); 39 $iterator->rewind(); 40 41 $lecture1 = $iterator->current(); 42 $this->assertEqual($lecture1->getCourse()->getTitle(), $course->getTitle()); 43 44 $iterator->next(); 45 $lecture2 = $iterator->current(); 46 $this->assertEqual($lecture2->getCourse()->getTitle(), $course->getTitle()); 47 } 48 49 function testSetActiveRecordClassPathWithSetter() 50 { 51 $course = $this->_createCourseWithTwoLectures(); 52 53 $db = new lmbSimpleDb(lmbToolkit :: instance()->getDefaultDbConnection()); 54 $decorated = $db->select('lecture_for_test'); 55 56 $iterator = new lmbARRecordSetDecorator($decorated); 57 $iterator->setClassPath('LectureForTest'); 58 $iterator->rewind(); 59 60 $lecture1 = $iterator->current(); 61 $this->assertEqual($lecture1->getCourse()->getTitle(), $course->getTitle()); 62 63 $iterator->next(); 64 $lecture2 = $iterator->current(); 65 $this->assertEqual($lecture2->getCourse()->getTitle(), $course->getTitle()); 66 } 67 68 function testGetOffsetIsDecorated() 69 { 70 $course = $this->_createCourseWithTwoLectures(); 71 72 $db = new lmbSimpleDb(lmbToolkit :: instance()->getDefaultDbConnection()); 73 $decorated = $db->select('lecture_for_test'); 74 75 $iterator = new lmbARRecordSetDecorator($decorated); 76 $iterator->setClassPath('LectureForTest'); 77 78 $this->assertEqual($iterator->at(0)->getCourse()->getTitle(), $course->getTitle()); 79 $this->assertEqual($iterator[0]->getCourse()->getTitle(), $course->getTitle()); 80 81 $this->assertEqual($iterator->at(1)->getCourse()->getTitle(), $course->getTitle()); 82 $this->assertEqual($iterator[1]->getCourse()->getTitle(), $course->getTitle()); 83 } 84 85 function testThrowExceptionIfClassPathIsNotDefined() 86 { 87 $course = $this->_createCourseWithTwoLectures(); 88 89 $db = new lmbSimpleDb(lmbToolkit :: instance()->getDefaultDbConnection()); 90 $decorated = $db->select('lecture_for_test'); 91 92 $iterator = new lmbARRecordSetDecorator($decorated); 93 $iterator->rewind(); 94 try 95 { 96 $iterator->current(); 97 $this->assertTrue(false); 98 } 99 catch(lmbException $e){} 100 } 101 102 function testIfRecordIsEmpty() 103 { 104 $iterator = new lmbARRecordSetDecorator(new lmbCollection()); 105 $iterator->setClassPath('LectureForTest'); 106 $iterator->rewind(); 107 $this->assertFalse($iterator->valid()); 108 } 109 110 function _createCourseWithTwoLectures() 111 { 112 $course = new CourseForTest(); 113 $course->setTitle($title = 'General Course'); 114 115 $l1 = new LectureForTest(); 116 $l1->setTitle('Physics'); 117 $l2 = new LectureForTest(); 118 $l2->setTitle('Math'); 119 120 $course->addToLectures($l1); 121 $course->addToLectures($l2); 122 $course->save(); 123 124 return $course; 125 } 126 } 127 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Sat Nov 22 03:48:54 2008 | Cross-referenced by PHPXref 0.7 |