From 5779b901e8a6cae33aaa00c65c939753ab238ace Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Thu, 15 Nov 2007 23:27:55 +0000 Subject: [PATCH] MDL-12182 More grade_item unit tests --- lib/grade/simpletest/testgradeitem.php | 42 +++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/lib/grade/simpletest/testgradeitem.php b/lib/grade/simpletest/testgradeitem.php index b7315d9cf3..c1d87e01ec 100755 --- a/lib/grade/simpletest/testgradeitem.php +++ b/lib/grade/simpletest/testgradeitem.php @@ -128,7 +128,7 @@ class grade_item_test extends grade_test { grade_object::set_properties($grade_item, $this->grade_items[0]); $grade_item->iteminfo = 'Updated info for this unittest grade_item'; $grade_item->lib_wrapper = new mock_lib_wrapper(); - $grade_item->lib_wrapper->expectOnce('update_record', array($grade_item->table, addslashes_recursive($grade_item->get_record_data()))); + $grade_item->lib_wrapper->expectOnce('update_record', array($grade_item->table, '*')); $grade_item->lib_wrapper->setReturnValue('update_record', true); $this->assertTrue(method_exists($grade_item, 'update')); @@ -340,7 +340,47 @@ class grade_item_test extends grade_test { $grade_item->expectNever('get_item_category'); $this->assertTrue($grade_item->regrade_final_grades($this->userid)); + + // If the item is calculated but the grades cannot be calculated, method should return an error message + $grade_item = new mock_grade_item_for_regrade_final($this); + $grade_item->expectOnce('is_calculated', array()); + $grade_item->setReturnValue('is_calculated', true); + $grade_item->expectOnce('compute', array($this->userid)); + $grade_item->setReturnValue('compute', false); + $this->assertEqual("Could not calculate grades for grade item", $grade_item->regrade_final_grades($this->userid)); + + // If the item is an outcome item, return true before regrading + $grade_item = new mock_grade_item_for_regrade_final($this); + $grade_item->expectOnce('is_outcome_item', array()); + $grade_item->setReturnValue('is_outcome_item', true); + $this->assertTrue($grade_item->regrade_final_grades($this->userid)); + + // If the item is a category or course item, category must generate grades, then return true + $grade_item = new mock_grade_item_for_regrade_final($this); + $grade_item->expectCallCount('is_category_item', 2, array()); + $grade_item->expectCallCount('is_course_item', 2, array()); + $grade_item->setReturnValue('is_category_item', false); + $grade_item->setReturnValue('is_course_item', true); + $grade_item->expectCallCount('get_item_category', 2, array()); + $category = new mock_grade_category(); + $category->expectCallCount('generate_grades', 2, array($this->userid)); + $category->setReturnValueAt(0, 'generate_grades', true); + $category->setReturnValueAt(1, 'generate_grades', false); // if generate_grades() is false, method should return false + $grade_item->setReturnValue('get_item_category', $category); + $this->assertTrue($grade_item->regrade_final_grades($this->userid)); + $this->assertEqual("Could not aggregate final grades for category:".$grade_item->id, $grade_item->regrade_final_grades($this->userid)); + + // If the item is a manual item, method should return true before regrading + $grade_item = new mock_grade_item_for_regrade_final($this); + $grade_item->expectOnce('is_manual_item', array()); + $grade_item->setReturnValue('is_manual_item', true); + $this->assertTrue($grade_item->regrade_final_grades($this->userid)); + // If the item is not using raw grades, method should return true without regrading + $grade_item = new mock_grade_item_for_regrade_final($this); + $grade_item->expectOnce('is_raw_used', array()); + $grade_item->setReturnValue('is_raw_used', false); + $this->assertTrue($grade_item->regrade_final_grades($this->userid)); } /* -- 2.39.5