]> git.mjollnir.org Git - moodle.git/commitdiff
Gradebook unit tests review
authornicolasconnault <nicolasconnault>
Fri, 3 Aug 2007 15:10:25 +0000 (15:10 +0000)
committernicolasconnault <nicolasconnault>
Fri, 3 Aug 2007 15:10:25 +0000 (15:10 +0000)
lib/grade/grade_category.php
lib/grade/simpletest/testgradecategory.php

index fe9e327667a36aeb28a423ad3025dd63589a7ee9..3c2b87735955914fdb4ad6b6766bd33e4efdf416 100644 (file)
@@ -253,6 +253,9 @@ class grade_category extends grade_object {
         return $this->id;
     }
 
+    /**
+     * TODO document
+     */
     function insert_course_category($courseid) {
         $this->courseid  = $courseid;
         $this->fullname  = 'course grade category';
index f233013fbfa4fcd7c33d4ecd57697b8c887a8339..c5b08c526f4432f649cd1fe4259cf8d765655394 100755 (executable)
@@ -75,40 +75,28 @@ class grade_category_test extends grade_test {
         $this->assertEqual("$parentpath/$grade_category->id", $grade_category->path);
     }
 
-    function test_grade_category_insert() {
-        $course_category = grade_category::fetch_course_category($this->courseid);
+    function test_grade_category_build_path() {
+        $grade_category = new grade_category($this->grade_categories[1]);
+        $this->assertTrue(method_exists($grade_category, 'build_path'));
+        $path = grade_category::build_path($grade_category);
+        $this->assertEqual($grade_category->path, $path);
+    }
 
+    function test_grade_category_fetch() {
         $grade_category = new grade_category();
-        $this->assertTrue(method_exists($grade_category, 'insert'));
-
-        $grade_category->fullname    = 'unittestcategory4';
-        $grade_category->courseid    = $this->courseid;
-        $grade_category->aggregation = GRADE_AGGREGATE_MEAN_GRADED;
-        $grade_category->keephigh    = 100;
-        $grade_category->droplow     = 10;
-        $grade_category->hidden      = 0;
-        $grade_category->parent      = $this->grade_categories[0]->id;
-
-        $grade_category->insert();
-
-        $this->assertEqual('/'.$course_category->id.'/'.$this->grade_categories[0]->id.'/'.$grade_category->id, $grade_category->path);
-        $this->assertEqual(3, $grade_category->depth);
-
-        $last_grade_category = end($this->grade_categories);
-
-        $this->assertFalse(empty($grade_category->grade_item));
-        $this->assertEqual($grade_category->id, $grade_category->grade_item->iteminstance);
-        $this->assertEqual('category', $grade_category->grade_item->itemtype);
+        $this->assertTrue(method_exists($grade_category, 'fetch'));
 
-        $this->assertEqual($grade_category->id, $last_grade_category->id + 1);
-        $this->assertFalse(empty($grade_category->timecreated));
-        $this->assertFalse(empty($grade_category->timemodified));
+        $grade_category = grade_category::fetch(array('id'=>$this->grade_categories[0]->id));
+        $this->assertEqual($this->grade_categories[0]->id, $grade_category->id);
+        $this->assertEqual($this->grade_categories[0]->fullname, $grade_category->fullname);
     }
 
-    function test_grade_category_build_path() {
-        $grade_category = new grade_category($this->grade_categories[1]);
-        $path = grade_category::build_path($grade_category);
-        $this->assertEqual($grade_category->path, $path);
+    function test_grade_category_fetch_all() {
+        $grade_category = new grade_category();
+        $this->assertTrue(method_exists($grade_category, 'fetch_all'));
+
+        $grade_categories = grade_category::fetch_all(array('courseid'=>$this->courseid));
+        $this->assertEqual(count($this->grade_categories), count($grade_categories)-1);
     }
 
     function test_grade_category_update() {
@@ -138,6 +126,57 @@ class grade_category_test extends grade_test {
         $this->assertEqual(1, $grade_item->needsupdate);
     }
 
+    function test_grade_category_delete() {
+        $grade_category = new grade_category($this->grade_categories[0]);
+        $this->assertTrue(method_exists($grade_category, 'delete'));
+
+        $this->assertTrue($grade_category->delete());
+        $this->assertFalse(get_record('grade_categories', 'id', $grade_category->id));
+    }
+
+    function test_grade_category_insert() {
+        $course_category = grade_category::fetch_course_category($this->courseid);
+
+        $grade_category = new grade_category();
+        $this->assertTrue(method_exists($grade_category, 'insert'));
+
+        $grade_category->fullname    = 'unittestcategory4';
+        $grade_category->courseid    = $this->courseid;
+        $grade_category->aggregation = GRADE_AGGREGATE_MEAN_GRADED;
+        $grade_category->keephigh    = 100;
+        $grade_category->droplow     = 10;
+        $grade_category->hidden      = 0;
+        $grade_category->parent      = $this->grade_categories[0]->id;
+
+        $grade_category->insert();
+
+        $this->assertEqual('/'.$course_category->id.'/'.$this->grade_categories[0]->id.'/'.$grade_category->id, $grade_category->path);
+        $this->assertEqual(3, $grade_category->depth);
+
+        $last_grade_category = end($this->grade_categories);
+
+        $this->assertFalse(empty($grade_category->grade_item));
+        $this->assertEqual($grade_category->id, $grade_category->grade_item->iteminstance);
+        $this->assertEqual('category', $grade_category->grade_item->itemtype);
+
+        $this->assertEqual($grade_category->id, $last_grade_category->id + 1);
+        $this->assertFalse(empty($grade_category->timecreated));
+        $this->assertFalse(empty($grade_category->timemodified));
+    }
+
+    function test_grade_category_insert_course_category() {
+        $grade_category = new grade_category();
+        $this->assertTrue(method_exists($grade_category, 'insert_course_category'));
+
+        $id = $grade_category->insert_course_category($this->courseid);
+        $this->assertNotNull($id);
+        $this->assertEqual('course grade category', $grade_category->fullname);
+        $this->assertEqual(GRADE_AGGREGATE_MEAN_ALL, $grade_category->aggregate);
+        $this->assertEqual("/$id", $grade_category->path);
+        $this->assertEqual($id, $grade_category->depth);
+        $this->assertNull($grade_category->parent);
+    }
+
     function test_grade_category_qualifies_for_regrading() {
         $grade_category = new grade_category($this->grade_categories[0]);
         $this->assertTrue(method_exists($grade_category, 'qualifies_for_regrading'));
@@ -171,29 +210,65 @@ class grade_category_test extends grade_test {
         $this->assertEqual(1, $grade_category->grade_item->needsupdate);
     }
 
-    function test_grade_category_delete() {
-        $grade_category = new grade_category($this->grade_categories[0]);
-        $this->assertTrue(method_exists($grade_category, 'delete'));
+    function test_grade_category_generate_grades() {
+        $category = new grade_category($this->grade_categories[3]);
+        $this->assertTrue(method_exists($category, 'generate_grades'));
+        $category->load_grade_item();
 
-        $this->assertTrue($grade_category->delete());
-        $this->assertFalse(get_record('grade_categories', 'id', $grade_category->id));
+        $grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
+        $this->assertFalse($grades);
+
+        $category->generate_grades();
+        $grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
+        $this->assertEqual(3, count($grades));
+
+        $rawvalues = array();
+        foreach ($grades as $grade) {
+            $this->assertWithinMargin($grade->rawgrade, $grade->rawgrademin, $grade->rawgrademax);
+            $rawvalues[] = (int)$grade->rawgrade;
+        }
+        sort($rawvalues);
+        // calculated mean results
+        $this->assertEqual($rawvalues, array(20,50,100));
     }
 
-    function test_grade_category_fetch() {
-        $grade_category = new grade_category();
-        $this->assertTrue(method_exists($grade_category, 'fetch'));
+    function test_grade_category_aggregate_grades() {
+        $category = new grade_category($this->grade_categories[0]);
+        $this->assertTrue(method_exists($category, 'aggregate_grades'));
+        // tested above in test_grade_category_generate_grades()
+    }
 
-        $grade_category = grade_category::fetch(array('id'=>$this->grade_categories[0]->id));
-        $this->assertEqual($this->grade_categories[0]->id, $grade_category->id);
-        $this->assertEqual($this->grade_categories[0]->fullname, $grade_category->fullname);
+    function test_grade_category_apply_limit_rules() {
+        $category = new grade_category();
+        $grades = array(5.374, 9.4743, 2.5474, 7.3754);
+
+        $category->droplow = 2;
+        $category->apply_limit_rules($grades);
+        sort($grades, SORT_NUMERIC);
+        $this->assertEqual(array(7.3754, 9.4743), $grades);
+
+        $category = new grade_category();
+        $grades = array(5.374, 9.4743, 2.5474, 7.3754);
+
+        $category->keephigh = 1;
+        $category->droplow = 0;
+        $category->apply_limit_rules($grades);
+        $this->assertEqual(count($grades), 1);
+        $grade = reset($grades);
+        $this->assertEqual(9.4743, $grade);
     }
 
-    function test_grade_category_fetch_all() {
-        $grade_category = new grade_category();
-        $this->assertTrue(method_exists($grade_category, 'fetch_all'));
+    /**
+     * TODO implement
+     */
+    function test_grade_category_is_aggregationcoef_used() {
 
-        $grade_categories = grade_category::fetch_all(array('courseid'=>$this->courseid));
-        $this->assertEqual(count($this->grade_categories), count($grade_categories)-1);
+    }
+
+    function test_grade_category_fetch_course_tree() {
+        $category = new grade_category();
+        $this->assertTrue(method_exists($category, 'fetch_course_tree'));
+        //TODO: add some tests
     }
 
     function test_grade_category_get_children() {
@@ -215,13 +290,6 @@ class grade_category_test extends grade_test {
         $this->assertEqual($this->grade_items[2]->id, $children_array[5]['children'][6]['object']->id);
     }
 
-    function test_grade_category_get_grade_item() {
-        $category = new grade_category($this->grade_categories[0]);
-        $this->assertTrue(method_exists($category, 'get_grade_item'));
-        $grade_item = $category->get_grade_item();
-        $this->assertEqual($this->grade_items[3]->id, $grade_item->id);
-    }
-
     function test_grade_category_load_grade_item() {
         $category = new grade_category($this->grade_categories[0]);
         $this->assertTrue(method_exists($category, 'load_grade_item'));
@@ -230,11 +298,11 @@ class grade_category_test extends grade_test {
         $this->assertEqual($this->grade_items[3]->id, $category->grade_item->id);
     }
 
-    function test_grade_category_get_parent_category() {
-        $category = new grade_category($this->grade_categories[1]);
-        $this->assertTrue(method_exists($category, 'get_parent_category'));
-        $parent_category = $category->get_parent_category();
-        $this->assertEqual($this->grade_categories[0]->id, $parent_category->id);
+    function test_grade_category_get_grade_item() {
+        $category = new grade_category($this->grade_categories[0]);
+        $this->assertTrue(method_exists($category, 'get_grade_item'));
+        $grade_item = $category->get_grade_item();
+        $this->assertEqual($this->grade_items[3]->id, $grade_item->id);
     }
 
     function test_grade_category_load_parent_category() {
@@ -245,12 +313,29 @@ class grade_category_test extends grade_test {
         $this->assertEqual($this->grade_categories[0]->id, $category->parent_category->id);
     }
 
+    function test_grade_category_get_parent_category() {
+        $category = new grade_category($this->grade_categories[1]);
+        $this->assertTrue(method_exists($category, 'get_parent_category'));
+        $parent_category = $category->get_parent_category();
+        $this->assertEqual($this->grade_categories[0]->id, $parent_category->id);
+    }
+
     function test_grade_category_get_name() {
         $category = new grade_category($this->grade_categories[0]);
         $this->assertTrue(method_exists($category, 'get_name'));
         $this->assertEqual($this->grade_categories[0]->fullname, $category->get_name());
     }
 
+    function test_grade_category_set_parent() {
+        $category = new grade_category($this->grade_categories[1]);
+        $this->assertTrue(method_exists($category, 'set_parent'));
+        // TODO: implement detailed tests
+
+        $course_category = grade_category::fetch_course_category($this->courseid);
+        $this->assertTrue($category->set_parent($course_category->id));
+        $this->assertEqual($course_category->id, $category->parent);
+    }
+
     function test_grade_category_get_final() {
         $category = new grade_category($this->grade_categories[0]);
         $this->assertTrue(method_exists($category, 'get_final'));
@@ -279,6 +364,25 @@ class grade_category_test extends grade_test {
         $this->assertEqual($category->move_after_sortorder(10), $category->grade_item->move_after_sortorder(10));
     }
 
+    function test_grade_category_is_course_category() {
+        $category = grade_category::fetch_course_category($this->courseid);
+        $this->assertTrue(method_exists($category, 'is_course_category'));
+        $this->assertTrue($category->is_course_category());
+    }
+
+    function test_grade_category_fetch_course_category() {
+        $category = new grade_category();
+        $this->assertTrue(method_exists($category, 'fetch_course_category'));
+        $category = grade_category::fetch_course_category($this->courseid);
+        $this->assertTrue(empty($category->parent));
+    }
+    /**
+     * TODO implement
+     */
+    function test_grade_category_is_editable() {
+
+    }
+
     function test_grade_category_is_locked() {
         $category = new grade_category($this->grade_categories[0]);
         $this->assertTrue(method_exists($category, 'is_locked'));
@@ -307,34 +411,6 @@ class grade_category_test extends grade_test {
         $this->assertEqual(true, $category->grade_item->is_hidden());
     }
 
-    function test_grade_category_generate_grades() {
-        $category = new grade_category($this->grade_categories[3]);
-        $this->assertTrue(method_exists($category, 'generate_grades'));
-        $category->load_grade_item();
-
-        $grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
-        $this->assertFalse($grades);
-
-        $category->generate_grades();
-        $grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
-        $this->assertEqual(3, count($grades));
-
-        $rawvalues = array();
-        foreach ($grades as $grade) {
-            $this->assertWithinMargin($grade->rawgrade, $grade->rawgrademin, $grade->rawgrademax);
-            $rawvalues[] = (int)$grade->rawgrade;
-        }
-        sort($rawvalues);
-        // calculated mean results
-        $this->assertEqual($rawvalues, array(20,50,100));
-    }
-
-    function test_grade_category_aggregate_grades() {
-        $category = new grade_category($this->grade_categories[0]);
-        $this->assertTrue(method_exists($category, 'aggregate_grades'));
-        // tested above in test_grade_category_generate_grades()
-    }
-
     function generate_random_raw_grade($item, $userid) {
         $grade = new grade_grade();
         $grade->itemid = $item->id;
@@ -346,54 +422,5 @@ class grade_category_test extends grade_test {
         $grade->insert();
         return $grade->rawgrade;
     }
-
-    function test_grade_category_apply_limit_rules() {
-        $category = new grade_category();
-        $grades = array(5.374, 9.4743, 2.5474, 7.3754);
-
-        $category->droplow = 2;
-        $category->apply_limit_rules($grades);
-        sort($grades, SORT_NUMERIC);
-        $this->assertEqual(array(7.3754, 9.4743), $grades);
-
-        $category = new grade_category();
-        $grades = array(5.374, 9.4743, 2.5474, 7.3754);
-
-        $category->keephigh = 1;
-        $category->droplow = 0;
-        $category->apply_limit_rules($grades);
-        $this->assertEqual(count($grades), 1);
-        $grade = reset($grades);
-        $this->assertEqual(9.4743, $grade);
-    }
-
-    function test_grade_category_set_parent() {
-        $category = new grade_category($this->grade_categories[1]);
-        $this->assertTrue(method_exists($category, 'set_parent'));
-        // TODO: implement detailed tests
-
-        $course_category = grade_category::fetch_course_category($this->courseid);
-        $this->assertTrue($category->set_parent($course_category->id));
-        $this->assertEqual($course_category->id, $category->parent);
-    }
-
-    function test_grade_category_is_course_category() {
-        $category = grade_category::fetch_course_category($this->courseid);
-        $this->assertTrue(method_exists($category, 'is_course_category'));
-        $this->assertTrue($category->is_course_category());
-    }
-
-    function test_grade_category_fetch_course_category() {
-        $category = new grade_category();
-        $this->assertTrue(method_exists($category, 'fetch_course_category'));
-        $category = grade_category::fetch_course_category($this->courseid);
-        $this->assertTrue(empty($category->parent));
-    }
-
-    function test_grade_category_fetch_course_tree() {
-        $category = new grade_category();
-        $this->assertTrue(method_exists($category, 'fetch_course_tree'));
-        //TODO: add some tests
-    }
 }
 ?>