|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 00004 // // 00005 // NOTICE OF COPYRIGHT // 00006 // // 00007 // Moodle - Modular Object-Oriented Dynamic Learning Environment // 00008 // http://moodle.org // 00009 // // 00010 // Copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com // 00011 // // 00012 // This program is free software; you can redistribute it and/or modify // 00013 // it under the terms of the GNU General Public License as published by // 00014 // the Free Software Foundation; either version 2 of the License, or // 00015 // (at your option) any later version. // 00016 // // 00017 // This program is distributed in the hope that it will be useful, // 00018 // but WITHOUT ANY WARRANTY; without even the implied warranty of // 00019 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // 00020 // GNU General Public License for more details: // 00021 // // 00022 // http://www.gnu.org/copyleft/gpl.html // 00023 // // 00025 00034 if (!defined('MOODLE_INTERNAL')) { 00035 die('Direct access to this script is forbidden.'); 00036 } 00037 00038 require_once($CFG->libdir.'/simpletest/fixtures/gradetest.php'); 00039 00040 class grade_grade_test extends grade_test { 00041 00042 function test_grade_grade() { 00043 $this->sub_test_grade_grade_construct(); 00044 $this->sub_test_grade_grade_insert(); 00045 $this->sub_test_grade_grade_update(); 00046 $this->sub_test_grade_grade_fetch(); 00047 $this->sub_test_grade_grade_fetch_all(); 00048 $this->sub_test_grade_grade_load_grade_item(); 00049 $this->sub_test_grade_grade_standardise_score(); 00050 $this->sub_test_grade_grade_is_locked(); 00051 $this->sub_test_grade_grade_set_hidden(); 00052 $this->sub_test_grade_grade_is_hidden(); 00053 } 00054 00055 function sub_test_grade_grade_construct() { 00056 $params = new stdClass(); 00057 00058 $params->itemid = $this->grade_items[0]->id; 00059 $params->userid = 1; 00060 $params->rawgrade = 88; 00061 $params->rawgrademax = 110; 00062 $params->rawgrademin = 18; 00063 00064 $grade_grade = new grade_grade($params, false); 00065 $this->assertEqual($params->itemid, $grade_grade->itemid); 00066 $this->assertEqual($params->rawgrade, $grade_grade->rawgrade); 00067 } 00068 00069 function sub_test_grade_grade_insert() { 00070 $grade_grade = new grade_grade(); 00071 $this->assertTrue(method_exists($grade_grade, 'insert')); 00072 00073 $grade_grade->itemid = $this->grade_items[0]->id; 00074 $grade_grade->userid = 10; 00075 $grade_grade->rawgrade = 88; 00076 $grade_grade->rawgrademax = 110; 00077 $grade_grade->rawgrademin = 18; 00078 00079 // Check the grade_item's needsupdate variable first 00080 $grade_grade->load_grade_item(); 00081 $this->assertFalse($grade_grade->grade_item->needsupdate); 00082 00083 $grade_grade->insert(); 00084 00085 $last_grade_grade = end($this->grade_grades); 00086 00087 $this->assertEqual($grade_grade->id, $last_grade_grade->id + 1); 00088 00089 // timecreated will only be set if the grade was submitted by an activity module 00090 $this->assertTrue(empty($grade_grade->timecreated)); 00091 // timemodified will only be set if the grade was submitted by an activity module 00092 $this->assertTrue(empty($grade_grade->timemodified)); 00093 00094 //keep our collection the same as is in the database 00095 $this->grade_grades[] = $grade_grade; 00096 } 00097 00098 function sub_test_grade_grade_update() { 00099 $grade_grade = new grade_grade($this->grade_grades[0]); 00100 $this->assertTrue(method_exists($grade_grade, 'update')); 00101 } 00102 00103 function sub_test_grade_grade_fetch() { 00104 $grade_grade = new grade_grade(); 00105 $this->assertTrue(method_exists($grade_grade, 'fetch')); 00106 00107 $grades = grade_grade::fetch(array('id'=>$this->grade_grades[0]->id)); 00108 $this->assertEqual($this->grade_grades[0]->id, $grades->id); 00109 $this->assertEqual($this->grade_grades[0]->rawgrade, $grades->rawgrade); 00110 } 00111 00112 function sub_test_grade_grade_fetch_all() { 00113 $grade_grade = new grade_grade(); 00114 $this->assertTrue(method_exists($grade_grade, 'fetch_all')); 00115 00116 $grades = grade_grade::fetch_all(array()); 00117 $this->assertEqual(count($this->grade_grades), count($grades)); 00118 } 00119 00120 function sub_test_grade_grade_load_grade_item() { 00121 $grade_grade = new grade_grade($this->grade_grades[0]); 00122 $this->assertTrue(method_exists($grade_grade, 'load_grade_item')); 00123 $this->assertNull($grade_grade->grade_item); 00124 $this->assertTrue($grade_grade->itemid); 00125 $this->assertNotNull($grade_grade->load_grade_item()); 00126 $this->assertNotNull($grade_grade->grade_item); 00127 $this->assertEqual($this->grade_items[0]->id, $grade_grade->grade_item->id); 00128 } 00129 00130 00131 function sub_test_grade_grade_standardise_score() { 00132 $this->assertEqual(4, round(grade_grade::standardise_score(6, 0, 7, 0, 5))); 00133 $this->assertEqual(40, grade_grade::standardise_score(50, 30, 80, 0, 100)); 00134 } 00135 00136 00137 /* 00138 * Disabling this test: the set_locked() arguments have been modified, rendering these tests useless until they are re-written 00139 00140 function test_grade_grade_set_locked() { 00141 $grade_item = new grade_item($this->grade_items[0]); 00142 $grade = new grade_grade($grade_item->get_final(1)); 00143 $this->assertTrue(method_exists($grade, 'set_locked')); 00144 00145 $this->assertTrue(empty($grade_item->locked)); 00146 $this->assertTrue(empty($grade->locked)); 00147 00148 $this->assertTrue($grade->set_locked(true)); 00149 $this->assertFalse(empty($grade->locked)); 00150 $this->assertTrue($grade->set_locked(false)); 00151 $this->assertTrue(empty($grade->locked)); 00152 00153 $this->assertTrue($grade_item->set_locked(true, true)); 00154 $grade = new grade_grade($grade_item->get_final(1)); 00155 00156 $this->assertFalse(empty($grade->locked)); 00157 $this->assertFalse($grade->set_locked(true, false)); 00158 00159 $this->assertTrue($grade_item->set_locked(true, false)); 00160 $grade = new grade_grade($grade_item->get_final(1)); 00161 00162 $this->assertTrue($grade->set_locked(true, false)); 00163 } 00164 */ 00165 00166 function sub_test_grade_grade_is_locked() { 00167 $grade = new grade_grade($this->grade_grades[0]); 00168 $this->assertTrue(method_exists($grade, 'is_locked')); 00169 00170 $this->assertFalse($grade->is_locked()); 00171 $grade->locked = time(); 00172 $this->assertTrue($grade->is_locked()); 00173 } 00174 00175 function sub_test_grade_grade_set_hidden() { 00176 $grade_item = new grade_item($this->grade_items[0]); 00177 $grade = new grade_grade($grade_item->get_final(1)); 00178 $this->assertTrue(method_exists($grade, 'set_hidden')); 00179 00180 $this->assertEqual(0, $grade_item->hidden); 00181 $this->assertEqual(0, $grade->hidden); 00182 00183 $grade->set_hidden(0); 00184 $this->assertEqual(0, $grade->hidden); 00185 00186 $grade->set_hidden(1); 00187 $this->assertEqual(1, $grade->hidden); 00188 } 00189 00190 function sub_test_grade_grade_is_hidden() { 00191 $grade = new grade_grade($this->grade_grades[0]); 00192 $this->assertTrue(method_exists($grade, 'is_hidden')); 00193 00194 //$this->grade_grades[0] is hidden by sub_test_grade_grade_set_hidden() 00195 //$this->assertFalse($grade->is_hidden()); 00196 //$grade->hidden = 1; 00197 $this->assertTrue($grade->is_hidden()); 00198 00199 $grade->hidden = time()-666; 00200 $this->assertFalse($grade->is_hidden()); 00201 00202 $grade->hidden = time()+666; 00203 $this->assertTrue($grade->is_hidden()); 00204 } 00205 00206 00207 }