[limb-svn] r6711 - in 3.x/trunk/limb/active_record: src tests/cases
svn at limb-project.com
svn at limb-project.com
Mon Jan 21 12:11:14 MSK 2008
Author: serega
Date: 2008-01-21 12:11:13 +0300 (Mon, 21 Jan 2008)
New Revision: 6711
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6711
Modified:
3.x/trunk/limb/active_record/src/lmbARRecordSetAttachDecorator.class.php
3.x/trunk/limb/active_record/tests/cases/lmbARQueryTest.class.php
Log:
-- lmbARRecordSetAttachDecorator now applies default sort params for attached objects query
Modified: 3.x/trunk/limb/active_record/src/lmbARRecordSetAttachDecorator.class.php
===================================================================
--- 3.x/trunk/limb/active_record/src/lmbARRecordSetAttachDecorator.class.php 2008-01-21 07:52:52 UTC (rev 6710)
+++ 3.x/trunk/limb/active_record/src/lmbARRecordSetAttachDecorator.class.php 2008-01-21 09:11:13 UTC (rev 6711)
@@ -67,10 +67,10 @@
$export_each = false);
break;
case lmbActiveRecord :: HAS_MANY:
- if(isset($params['sort']))
- $params['sort'] = array($relation_info['field'] => 'ASC') + $params['sort'];
- else
- $params['sort'] = array($relation_info['field'] => 'ASC');
+ if(!isset($params['sort']))
+ $params['sort'] = $relation_object->getDefaultSortParams();
+
+ $params['sort'] = array($relation_info['field'] => 'ASC') + $params['sort'];
$query = lmbAROneToManyCollection :: createFullARQueryForRelation($relation_info, $this->conn, $params);
@@ -83,10 +83,10 @@
$this->loaded_attaches[$relation_name][$attached_object->get($relation_info['field'])][] = $attached_object;
break;
case lmbActiveRecord :: HAS_MANY_TO_MANY:
- if(isset($params['sort']))
- $params['sort'] = array($relation_info['field'] => 'ASC') + $params['sort'];
- else
- $params['sort'] = array($relation_info['field'] => 'ASC');
+ if(!isset($params['sort']))
+ $params['sort'] = $relation_object->getDefaultSortParams();
+
+ $params['sort'] = array($relation_info['field'] => 'ASC') + $params['sort'];
$query = lmbARManyToManyCollection :: createFullARQueryForRelation($relation_info, $this->conn, $params);
$query->addField($relation_info['table']. '.' . $relation_info['field'], "link__id");
Modified: 3.x/trunk/limb/active_record/tests/cases/lmbARQueryTest.class.php
===================================================================
--- 3.x/trunk/limb/active_record/tests/cases/lmbARQueryTest.class.php 2008-01-21 07:52:52 UTC (rev 6710)
+++ 3.x/trunk/limb/active_record/tests/cases/lmbARQueryTest.class.php 2008-01-21 09:11:13 UTC (rev 6711)
@@ -21,7 +21,7 @@
$object1 = $this->creator->createOneTableObject();
$object2 = $this->creator->createOneTableObject();
- $query = new lmbARQuery('TestOneTableObject', $this->conn);
+ $query = lmbARQuery :: create('TestOneTableObject', array(), $this->conn);
$iterator = $query->fetch();
$arr = $iterator->getArray();
@@ -38,7 +38,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('PersonForTest', $this->conn);
+ $query = lmbARQuery :: create('PersonForTest', array(), $this->conn);
$query->join('social_security');
$iterator = $query->fetch();
$arr = $iterator->getArray();
@@ -72,7 +72,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('SocialSecurityForTest', $this->conn);
+ $query = lmbARQuery :: create('SocialSecurityForTest', array(), $this->conn);
$query->join('person');
$iterator = $query->fetch();
$arr = $iterator->getArray();
@@ -107,7 +107,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('LectureForTest', $this->conn);
+ $query = lmbARQuery :: create('LectureForTest', array(), $this->conn);
$query->join('course');
$iterator = $query->fetch();
$arr = $iterator->getArray();
@@ -144,7 +144,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('PersonForTest', $this->conn);
+ $query = lmbARQuery :: create('PersonForTest', array(), $this->conn);
// note attach() has the same effect as join() but workds is a different way - it produces another sql request
$iterator = $query->attach('social_security')->fetch();
$arr = $iterator->getArray();
@@ -180,7 +180,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('SocialSecurityForTest', $this->conn);
+ $query = lmbARQuery :: create('SocialSecurityForTest', array(), $this->conn);
// note attach() has the same effect as join() but workds is a different way - it produces another sql request
$arr = $query->attach('person')->fetch()->getArray();
@@ -217,7 +217,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('LectureForTest', $this->conn);
+ $query = lmbARQuery :: create('LectureForTest', array(), $this->conn);
$arr = $query->attach('course')->attach('alt_course')->fetch()->getArray();
$this->assertEqual($this->conn->countQueries(), 3);
@@ -263,7 +263,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('CourseForTest', $this->conn);
+ $query = lmbARQuery :: create('CourseForTest', array(), $this->conn);
$arr = $query->attach('lectures', array('sort' => array('title' => 'ASC')))->fetch()->getArray();
$this->assertEqual($this->conn->countQueries(), 2);
@@ -309,7 +309,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('UserForTest', $this->conn);
+ $query = lmbARQuery :: create('UserForTest', array(), $this->conn);
$arr = $query->attach('groups', array('sort' => array('title' => 'DESC')))->fetch()->getArray();
$this->assertEqual($this->conn->countQueries(), 2);
@@ -356,9 +356,10 @@
$this->conn->resetStats();
- $query = new lmbARQuery('CourseForTest', $this->conn);
+ $query = lmbARQuery :: create('CourseForTest', array(), $this->conn);
$query->where(lmbSQLCriteria :: in('id', array($course1->getId(), $course2->getId())));
- $arr = $query->attach('lectures', array('join' => 'alt_course'))->fetch()->getArray();
+ $rs = $query->attach('lectures', array('join' => 'alt_course'))->fetch();
+ $arr = $rs->getArray();
$this->assertEqual($this->conn->countQueries(), 2);
@@ -370,7 +371,7 @@
$this->assertIsA($arr[0], 'CourseForTest');
$this->assertEqual($arr[0]->getTitle(), $course1->getTitle());
- $lectures = $arr[0]->getLectures();
+ $lectures = $arr[0]->getLectures()->getArray();
$this->assertEqual(count($lectures), 3);
$this->assertEqual($lectures[0]->getId(), $lecture1->getId());
$this->assertEqual($lectures[0]->getAltCourse()->getTitle(), $alt_course2->getTitle());
@@ -382,7 +383,7 @@
$this->assertIsA($arr[1], 'CourseForTest');
$this->assertEqual($arr[1]->getTitle(), $course2->getTitle());
- $lectures = $arr[1]->getLectures();
+ $lectures = $arr[1]->getLectures()->getArray();
$this->assertEqual(count($lectures), 1);
$this->assertEqual($lectures[0]->getId(), $lecture2->getId());
$this->assertEqual($lectures[0]->getAltCourse()->getTitle(), $alt_course1->getTitle());
@@ -410,7 +411,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('LectureForTest', $this->conn);
+ $query = lmbARQuery :: create('LectureForTest', array(), $this->conn);
$query->where(lmbSQLCriteria :: equal('course_id', $course1->getId()));
$iterator = $query->join('alt_course', array('attach' => 'lectures'))->fetch();
$arr = $iterator->getArray();
@@ -466,7 +467,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('CourseForTest', $this->conn);
+ $query = lmbARQuery :: create('CourseForTest', array(), $this->conn);
$query->where(lmbSQLCriteria :: in('id', array($course1->getId(), $course2->getId())));
$arr = $query->attach('lectures', array('join' => array('alt_course' => array('attach' => 'lectures'))))->fetch()->getArray();
@@ -480,7 +481,7 @@
$this->assertIsA($arr[0], 'CourseForTest');
$this->assertEqual($arr[0]->getTitle(), $course1->getTitle());
- $lectures = $arr[0]->getLectures();
+ $lectures = $arr[0]->getLectures()->getArray();
$this->assertEqual(count($lectures), 3);
$this->assertEqual($lectures[0]->getId(), $lecture1->getId());
$this->assertEqual($lectures[0]->getAltCourse()->getTitle(), $alt_course2->getTitle());
@@ -502,7 +503,7 @@
$this->assertIsA($arr[1], 'CourseForTest');
$this->assertEqual($arr[1]->getTitle(), $course2->getTitle());
- $lectures = $arr[1]->getLectures();
+ $lectures = $arr[1]->getLectures()->getArray();
$this->assertEqual(count($lectures), 1);
$this->assertEqual($lectures[0]->getId(), $lecture2->getId());
$this->assertEqual($lectures[0]->getAltCourse()->getTitle(), $alt_course1->getTitle());
@@ -525,7 +526,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('LectureForTest', $this->conn);
+ $query = lmbARQuery :: create('LectureForTest', array(), $this->conn);
$iterator = $query->join('course', array('join' => 'program'))->fetch();
$arr = $iterator->getArray();
@@ -570,7 +571,7 @@
$this->conn->resetStats();
- $query = new lmbARQuery('ProgramForTest', $this->conn);
+ $query = lmbARQuery :: create('ProgramForTest', array(), $this->conn);
$iterator = $query->attach('courses', array('attach' => 'lectures'))->fetch();
$arr = $iterator->getArray();
@@ -587,29 +588,29 @@
$this->assertIsA($arr[0], 'ProgramForTest');
$this->assertEqual($arr[0]->getTitle(), $program1->getTitle());
- $courses = $arr[0]->getCourses();
+ $courses = $arr[0]->getCourses()->getArray();
$this->assertEqual($courses[0]->getTitle(), $course1->getTitle());
- $lectures = $courses[0]->getLectures();
+ $lectures = $courses[0]->getLectures()->getArray();
$this->assertEqual($lectures[0]->getTitle(), $lecture1->getTitle());
$this->assertEqual($lectures[1]->getTitle(), $lecture5->getTitle());
$this->assertEqual($courses[1]->getTitle(), $course3->getTitle());
- $lectures = $courses[1]->getLectures();
+ $lectures = $courses[1]->getLectures()->getArray();
$this->assertEqual($lectures[0]->getTitle(), $lecture3->getTitle());
$this->assertEqual($lectures[1]->getTitle(), $lecture7->getTitle());
$this->assertEqual($arr[1]->getTitle(), $program2->getTitle());
- $courses = $arr[1]->getCourses();
+ $courses = $arr[1]->getCourses()->getArray();
$this->assertEqual($courses[0]->getTitle(), $course2->getTitle());
- $lectures = $courses[0]->getLectures();
+ $lectures = $courses[0]->getLectures()->getArray();
$this->assertEqual($lectures[0]->getTitle(), $lecture2->getTitle());
$this->assertEqual($lectures[1]->getTitle(), $lecture6->getTitle());
$this->assertEqual($courses[1]->getTitle(), $course4->getTitle());
- $lectures = $courses[1]->getLectures();
+ $lectures = $courses[1]->getLectures()->getArray();
$this->assertEqual($lectures[0]->getTitle(), $lecture4->getTitle());
$this->assertEqual($lectures[1]->getTitle(), $lecture8->getTitle());
@@ -622,7 +623,7 @@
$course1 = $this->creator->createCourse($program);
$course2 = $this->creator->createCourse();
- $query = new lmbARQuery('CourseForTest', $this->conn);
+ $query = lmbARQuery :: create('CourseForTest', array(), $this->conn);
$arr = $query->join('program')->fetch()->getArray();
$this->assertEqual($arr[0]->getProgram()->getTitle(), $program->getTitle());
@@ -634,7 +635,7 @@
$program1 = $this->creator->createProgram();
$program2 = $this->creator->createProgram();
- $query = new lmbARQuery('ProgramForTest', $this->conn);
+ $query = lmbARQuery :: create('ProgramForTest', array(), $this->conn);
$arr = $query->attach('courses')->fetch()->getArray();
$this->assertEqual($arr[0]->getTitle(), $program1->getTitle());
@@ -648,7 +649,7 @@
$program1 = $this->creator->createProgram();
$program2 = $this->creator->createProgram();
- $query = new lmbARQuery('ProgramForTest', $this->conn);
+ $query = lmbARQuery :: create('ProgramForTest', array(), $this->conn);
$query->join('courses');
try
{
@@ -666,7 +667,7 @@
$course1 = $this->creator->createCourse();
$course2 = $this->creator->createCourse();
- $query = new lmbARQuery('CourseForTest', $this->conn);
+ $query = lmbARQuery :: create('CourseForTest', array(), $this->conn);
$arr = $query->attach('program')->fetch()->getArray();
$this->assertEqual($arr[0]->getTitle(), $course1->getTitle());
More information about the limb-svn
mailing list