PageRenderTime 49ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/MoodleWebRole/lib/grade/simpletest/testgradegrades.php

#
PHP | 191 lines | 94 code | 37 blank | 60 comment | 1 complexity | 6782657b74a08eb072b71875c1ef8e35 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause, LGPL-2.0, GPL-2.0
  1. <?php // $Id: testgradegrades.php,v 1.4.2.2 2008/03/27 17:13:01 nicolasconnault Exp $
  2. ///////////////////////////////////////////////////////////////////////////
  3. // //
  4. // NOTICE OF COPYRIGHT //
  5. // //
  6. // Moodle - Modular Object-Oriented Dynamic Learning Environment //
  7. // http://moodle.org //
  8. // //
  9. // Copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com //
  10. // //
  11. // This program is free software; you can redistribute it and/or modify //
  12. // it under the terms of the GNU General Public License as published by //
  13. // the Free Software Foundation; either version 2 of the License, or //
  14. // (at your option) any later version. //
  15. // //
  16. // This program is distributed in the hope that it will be useful, //
  17. // but WITHOUT ANY WARRANTY; without even the implied warranty of //
  18. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
  19. // GNU General Public License for more details: //
  20. // //
  21. // http://www.gnu.org/copyleft/gpl.html //
  22. // //
  23. ///////////////////////////////////////////////////////////////////////////
  24. /**
  25. * Unit tests for grade_raw object.
  26. *
  27. * @author nicolas@moodle.com
  28. * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
  29. * @package moodlecore
  30. */
  31. if (!defined('MOODLE_INTERNAL')) {
  32. die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
  33. }
  34. require_once($CFG->libdir.'/simpletest/fixtures/gradetest.php');
  35. class grade_grade_test extends grade_test {
  36. function test_grade_grade_construct() {
  37. $params = new stdClass();
  38. $params->itemid = $this->grade_items[0]->id;
  39. $params->userid = 1;
  40. $params->rawgrade = 88;
  41. $params->rawgrademax = 110;
  42. $params->rawgrademin = 18;
  43. $grade_grade = new grade_grade($params, false);
  44. $this->assertEqual($params->itemid, $grade_grade->itemid);
  45. $this->assertEqual($params->rawgrade, $grade_grade->rawgrade);
  46. }
  47. function test_grade_grade_insert() {
  48. $grade_grade = new grade_grade();
  49. $this->assertTrue(method_exists($grade_grade, 'insert'));
  50. $grade_grade->itemid = $this->grade_items[0]->id;
  51. $grade_grade->userid = 1;
  52. $grade_grade->rawgrade = 88;
  53. $grade_grade->rawgrademax = 110;
  54. $grade_grade->rawgrademin = 18;
  55. // Check the grade_item's needsupdate variable first
  56. $grade_grade->load_grade_item();
  57. $this->assertFalse($grade_grade->grade_item->needsupdate);
  58. $grade_grade->insert();
  59. $last_grade_grade = end($this->grade_grades);
  60. $this->assertEqual($grade_grade->id, $last_grade_grade->id + 1);
  61. // timecreated will only be set if the grade was submitted by an activity module
  62. $this->assertTrue(empty($grade_grade->timecreated));
  63. // timemodified will only be set if the grade was submitted by an activity module
  64. $this->assertTrue(empty($grade_grade->timemodified));
  65. }
  66. function test_grade_grade_update() {
  67. $grade_grade = new grade_grade($this->grade_grades[0]);
  68. $this->assertTrue(method_exists($grade_grade, 'update'));
  69. }
  70. function test_grade_grade_fetch() {
  71. $grade_grade = new grade_grade();
  72. $this->assertTrue(method_exists($grade_grade, 'fetch'));
  73. $grades = grade_grade::fetch(array('id'=>$this->grade_grades[0]->id));
  74. $this->assertEqual($this->grade_grades[0]->id, $grades->id);
  75. $this->assertEqual($this->grade_grades[0]->rawgrade, $grades->rawgrade);
  76. }
  77. function test_grade_grade_fetch_all() {
  78. $grade_grade = new grade_grade();
  79. $this->assertTrue(method_exists($grade_grade, 'fetch_all'));
  80. $grades = grade_grade::fetch_all(array());
  81. $this->assertEqual(count($this->grade_grades), count($grades));
  82. }
  83. function test_grade_grade_load_grade_item() {
  84. $grade_grade = new grade_grade($this->grade_grades[0]);
  85. $this->assertTrue(method_exists($grade_grade, 'load_grade_item'));
  86. $this->assertNull($grade_grade->grade_item);
  87. $this->assertTrue($grade_grade->itemid);
  88. $this->assertNotNull($grade_grade->load_grade_item());
  89. $this->assertNotNull($grade_grade->grade_item);
  90. $this->assertEqual($this->grade_items[0]->id, $grade_grade->grade_item->id);
  91. }
  92. function test_grade_grade_standardise_score() {
  93. $this->assertEqual(4, round(grade_grade::standardise_score(6, 0, 7, 0, 5)));
  94. $this->assertEqual(40, grade_grade::standardise_score(50, 30, 80, 0, 100));
  95. }
  96. /*
  97. * Disabling this test: the set_locked() arguments have been modified, rendering these tests useless until they are re-written
  98. function test_grade_grade_set_locked() {
  99. $grade_item = new grade_item($this->grade_items[0]);
  100. $grade = new grade_grade($grade_item->get_final(1));
  101. $this->assertTrue(method_exists($grade, 'set_locked'));
  102. $this->assertTrue(empty($grade_item->locked));
  103. $this->assertTrue(empty($grade->locked));
  104. $this->assertTrue($grade->set_locked(true));
  105. $this->assertFalse(empty($grade->locked));
  106. $this->assertTrue($grade->set_locked(false));
  107. $this->assertTrue(empty($grade->locked));
  108. $this->assertTrue($grade_item->set_locked(true, true));
  109. $grade = new grade_grade($grade_item->get_final(1));
  110. $this->assertFalse(empty($grade->locked));
  111. $this->assertFalse($grade->set_locked(true, false));
  112. $this->assertTrue($grade_item->set_locked(true, false));
  113. $grade = new grade_grade($grade_item->get_final(1));
  114. $this->assertTrue($grade->set_locked(true, false));
  115. }
  116. */
  117. function test_grade_grade_is_locked() {
  118. $grade = new grade_grade($this->grade_grades[0]);
  119. $this->assertTrue(method_exists($grade, 'is_locked'));
  120. $this->assertFalse($grade->is_locked());
  121. $grade->locked = time();
  122. $this->assertTrue($grade->is_locked());
  123. }
  124. function test_grade_grade_set_hidden() {
  125. $grade_item = new grade_item($this->grade_items[0]);
  126. $grade = new grade_grade($grade_item->get_final(1));
  127. $this->assertTrue(method_exists($grade, 'set_hidden'));
  128. $this->assertEqual(0, $grade_item->hidden);
  129. $this->assertEqual(0, $grade->hidden);
  130. $grade->set_hidden(0);
  131. $this->assertEqual(0, $grade->hidden);
  132. $grade->set_hidden(1);
  133. $this->assertEqual(1, $grade->hidden);
  134. }
  135. function test_grade_grade_is_hidden() {
  136. $grade = new grade_grade($this->grade_grades[0]);
  137. $this->assertTrue(method_exists($grade, 'is_hidden'));
  138. $this->assertFalse($grade->is_hidden());
  139. $grade->hidden = 1;
  140. $this->assertTrue($grade->is_hidden());
  141. $grade->hidden = time()-666;
  142. $this->assertFalse($grade->is_hidden());
  143. $grade->hidden = time()+666;
  144. $this->assertTrue($grade->is_hidden());
  145. }
  146. }
  147. ?>