示例#1
0
 /**
  * Test grade elements sorting.
  */
 public function test_gradeelementssort()
 {
     global $CFG, $DB;
     $this->load_csv_data();
     $rec1 = new stdClass();
     $rec1->id = 1;
     $rec1->studentgradeid = 1;
     $rec1->idnumber = 'required';
     $rec1->grade = '0.00000';
     $rec1->locked = 0;
     $rec1->timegraded = 0;
     $rec2 = new stdClass();
     $rec2->id = 2;
     $rec2->studentgradeid = 2;
     $rec2->idnumber = 'notrequired';
     $rec2->grade = '80.00000';
     $rec2->locked = 0;
     $rec2->timegraded = 0;
     $dataset = array();
     $dataset[$rec1->id] = $rec1;
     $dataset[$rec2->id] = $rec2;
     // Test idnumber descending sorting.
     $sort = student::retrieve_grade_elements(100, 100, 103, 'idnumber', 'DESC');
     $sortvalues = array();
     foreach ($sort as $val) {
         $sortvalues[] = $val;
     }
     unset($sort);
     $this->assertEquals(array_values($dataset), $sortvalues);
     // Test grade ascending sorting.
     $sort = student::retrieve_grade_elements(100, 100, 103, 'grade', 'ASC');
     $sortvalues = array();
     foreach ($sort as $val) {
         $sortvalues[] = $val;
     }
     unset($sort);
     $this->assertEquals(array_values($dataset), $sortvalues);
     $dataset = array();
     // Swap.
     $dataset[$rec2->id] = $rec2;
     $dataset[$rec1->id] = $rec1;
     // Test idnumber ascending sorting.
     $sort = student::retrieve_grade_elements(100, 100, 103, 'idnumber', 'ASC');
     $sortvalues = array();
     foreach ($sort as $val) {
         $sortvalues[] = $val;
     }
     unset($sort);
     $this->assertEquals(array_values($dataset), $sortvalues);
     // Test grade descending sorting.
     $sort = student::retrieve_grade_elements(100, 100, 103, 'grade', 'DESC');
     $sortvalues = array();
     foreach ($sort as $val) {
         $sortvalues[] = $val;
     }
     unset($sort);
     $this->assertEquals(array_values($dataset), $sortvalues);
     // Test empty array on no results.
     $sort = student::retrieve_grade_elements(-1, 100, 103, 'grade', 'DESC');
     $sortvalues = array();
     foreach ($sort as $val) {
         $sortvalues[] = $val;
     }
     unset($sort);
     $this->assertEquals(array(), $sortvalues);
 }