Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/lib/grade/simpletest/testgradegrades.php
Go to the documentation of this file.
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 }
 All Data Structures Namespaces Files Functions Variables Enumerations