/**
- * Returns the raw value for this grade item (as imported by module or other source).
- *
- * @return mixed grades_Raw object if found, or false.
+ * Returns the raw values for this grade item (as imported by module or other source).
+ * @param int $userid Optional: to retrieve a single raw grade
+ * @return mixed An array of all raw_grades (stdClass objects) for this grade_item, or a single raw_grade.
*/
- function get_raw() {
- $grade_raw = get_record('grade_grades_raw', 'itemid', $this->id);
- return $grade_raw;
+ function get_raw($userid=NULL) {
+ $grade_raw = null;
+ if (!empty($userid)) {
+ $grade_raw = get_record('grade_grades_raw', 'itemid', $this->id, 'userid', $userid);
+ } else {
+ $grade_raw = get_records('grade_grades_raw', 'itemid', $this->id);
+ }
+ return $grade_raw;
}
/**
- * Returns the final value for this grade item.
- *
- * @return mixed grades_Final object if found, or false.
+ * Returns the final values for this grade item (as imported by module or other source).
+ * @param int $userid Optional: to retrieve a single final grade
+ * @return mixed An array of all final_grades (stdClass objects) for this grade_item, or a single final_grade.
*/
- function get_final() {
- $grade_final = get_record('grade_grades_final', 'itemid', $this->id);
- return $grade_final;
+ function get_final($userid=NULL) {
+ $grade_final = null;
+ if (!empty($userid)) {
+ $grade_final = get_record('grade_grades_final', 'itemid', $this->id, 'userid', $userid);
+ } else {
+ $grade_final = get_records('grade_grades_final', 'itemid', $this->id);
+ }
+ return $grade_final;
}
/**
function test_grade_item_insert() {
$grade_item = new grade_item();
-
+ $this->assertTrue(method_exists($grade_item, 'insert'));
+
$grade_item->courseid = $this->courseid;
$grade_item->categoryid = $this->grade_categories[0]->id;
$grade_item->itemname = 'unittestgradeitem4';
function test_grade_item_delete() {
$grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'delete'));
+
$this->assertTrue($grade_item->delete());
$this->assertFalse(get_record('grade_items', 'id', $grade_item->id));
}
function test_grade_item_update() {
$grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'update'));
+
$grade_item->iteminfo = 'Updated info for this unittest grade_item';
$this->assertTrue($grade_item->update());
$iteminfo = get_field('grade_items', 'iteminfo', 'id', $this->grade_items[0]->id);
function test_grade_item_set_timecreated() {
$grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'set_timecreated'));
+
$timestamp = mktime();
$grade_item->set_timecreated();
$this->assertEqual($timestamp, $grade_item->timecreated);
}
function test_grade_item_fetch() {
+ $grade_item = new grade_item();
+ $this->assertTrue(method_exists($grade_item, 'fetch'));
+
$grade_item = grade_item::fetch('id', $this->grade_items[0]->id);
$this->assertEqual($this->grade_items[0]->id, $grade_item->id);
$this->assertEqual($this->grade_items[0]->iteminfo, $grade_item->iteminfo);
function test_grade_item_fetch_all_using_this() {
$grade_item = new grade_item();
$grade_item->itemtype = 'mod';
+ $this->assertTrue(method_exists($grade_item, 'fetch_all_using_this'));
+
$grade_items = $grade_item->fetch_all_using_this();
$this->assertEqual(2, count($grade_items));
$first_grade_item = reset($grade_items);
* Retrieve all raw scores for a given grade_item.
*/
function test_grade_item_get_all_raws() {
+ $grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'get_raw'));
+ $raw_grades = $grade_item->get_raw();
+ $this->assertEqual(3, count($raw_grades));
}
/**
* Retrieve the raw score for a specific userid.
*/
function test_grade_item_get_raw() {
+ $grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'get_raw'));
+
+ $raw_grade = $grade_item->get_raw($this->userid);
+ $this->assertEqual(1, count($raw_grade));
+ $this->assertEqual($this->grade_grades_raw[0]->gradevalue, $raw_grade->gradevalue);
}
* Retrieve all final scores for a given grade_item.
*/
function test_grade_item_get_all_finals() {
-
+ $grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'get_final'));
+
+ $final_grades = $grade_item->get_final();
+ $this->assertEqual(3, count($final_grades));
}
* Retrieve all final scores for a specific userid.
*/
function test_grade_item_get_final() {
-
+ $grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'get_final'));
+
+ $final_grade = $grade_item->get_final($this->userid);
+ $this->assertEqual(1, count($final_grade));
+ $this->assertEqual($this->grade_grades_final[0]->gradevalue, $final_grade->gradevalue);
}
function test_grade_item_get_calculation() {
$grade_item = new grade_item($this->grade_items[0]);
+ $this->assertTrue(method_exists($grade_item, 'get_calculation'));
+
$grade_calculation = $grade_item->get_calculation();
$this->assertEqual($this->grade_calculations[0]->id, $grade_calculation->id);
}
function test_grade_item_set_calculation() {
$grade_item = new grade_item($this->grade_items[1]);
+ $this->assertTrue(method_exists($grade_item, 'set_calculation'));
+ $this->assertTrue(method_exists($grade_item, 'get_calculation'));
+
$calculation = 'SUM([unittestgradeitem1], [unittestgradeitem3])';
$grade_item->set_calculation($calculation);
$new_calculation = $grade_item->get_calculation();