/** * 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); }