Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/question/engine/simpletest/testquestionstate.php
Go to the documentation of this file.
00001 <?php
00002 // This file is part of Moodle - http://moodle.org/
00003 //
00004 // Moodle is free software: you can redistribute it and/or modify
00005 // it under the terms of the GNU General Public License as published by
00006 // the Free Software Foundation, either version 3 of the License, or
00007 // (at your option) any later version.
00008 //
00009 // Moodle is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
00016 
00027 defined('MOODLE_INTERNAL') || die();
00028 
00029 require_once(dirname(__FILE__) . '/../lib.php');
00030 require_once($CFG->libdir . '/questionlib.php');
00031 
00032 
00039 class question_state_test extends UnitTestCase {
00040     public function test_is_active() {
00041         $this->assertFalse(question_state::$notstarted->is_active());
00042         $this->assertFalse(question_state::$unprocessed->is_active());
00043         $this->assertTrue(question_state::$todo->is_active());
00044         $this->assertTrue(question_state::$invalid->is_active());
00045         $this->assertTrue(question_state::$complete->is_active());
00046         $this->assertFalse(question_state::$needsgrading->is_active());
00047         $this->assertFalse(question_state::$finished->is_active());
00048         $this->assertFalse(question_state::$gaveup->is_active());
00049         $this->assertFalse(question_state::$gradedwrong->is_active());
00050         $this->assertFalse(question_state::$gradedpartial->is_active());
00051         $this->assertFalse(question_state::$gradedright->is_active());
00052         $this->assertFalse(question_state::$manfinished->is_active());
00053         $this->assertFalse(question_state::$mangaveup->is_active());
00054         $this->assertFalse(question_state::$mangrwrong->is_active());
00055         $this->assertFalse(question_state::$mangrpartial->is_active());
00056         $this->assertFalse(question_state::$mangrright->is_active());
00057     }
00058 
00059     public function test_is_finished() {
00060         $this->assertFalse(question_state::$notstarted->is_finished());
00061         $this->assertFalse(question_state::$unprocessed->is_finished());
00062         $this->assertFalse(question_state::$todo->is_finished());
00063         $this->assertFalse(question_state::$invalid->is_finished());
00064         $this->assertFalse(question_state::$complete->is_finished());
00065         $this->assertTrue(question_state::$needsgrading->is_finished());
00066         $this->assertTrue(question_state::$finished->is_finished());
00067         $this->assertTrue(question_state::$gaveup->is_finished());
00068         $this->assertTrue(question_state::$gradedwrong->is_finished());
00069         $this->assertTrue(question_state::$gradedpartial->is_finished());
00070         $this->assertTrue(question_state::$gradedright->is_finished());
00071         $this->assertTrue(question_state::$manfinished->is_finished());
00072         $this->assertTrue(question_state::$mangaveup->is_finished());
00073         $this->assertTrue(question_state::$mangrwrong->is_finished());
00074         $this->assertTrue(question_state::$mangrpartial->is_finished());
00075         $this->assertTrue(question_state::$mangrright->is_finished());
00076     }
00077 
00078     public function test_is_graded() {
00079         $this->assertFalse(question_state::$notstarted->is_graded());
00080         $this->assertFalse(question_state::$unprocessed->is_graded());
00081         $this->assertFalse(question_state::$todo->is_graded());
00082         $this->assertFalse(question_state::$invalid->is_graded());
00083         $this->assertFalse(question_state::$complete->is_graded());
00084         $this->assertFalse(question_state::$needsgrading->is_graded());
00085         $this->assertFalse(question_state::$finished->is_graded());
00086         $this->assertFalse(question_state::$gaveup->is_graded());
00087         $this->assertTrue(question_state::$gradedwrong->is_graded());
00088         $this->assertTrue(question_state::$gradedpartial->is_graded());
00089         $this->assertTrue(question_state::$gradedright->is_graded());
00090         $this->assertFalse(question_state::$manfinished->is_graded());
00091         $this->assertFalse(question_state::$mangaveup->is_graded());
00092         $this->assertTrue(question_state::$mangrwrong->is_graded());
00093         $this->assertTrue(question_state::$mangrpartial->is_graded());
00094         $this->assertTrue(question_state::$mangrright->is_graded());
00095     }
00096 
00097     public function test_is_commented() {
00098         $this->assertFalse(question_state::$notstarted->is_commented());
00099         $this->assertFalse(question_state::$unprocessed->is_commented());
00100         $this->assertFalse(question_state::$todo->is_commented());
00101         $this->assertFalse(question_state::$invalid->is_commented());
00102         $this->assertFalse(question_state::$complete->is_commented());
00103         $this->assertFalse(question_state::$needsgrading->is_commented());
00104         $this->assertFalse(question_state::$finished->is_commented());
00105         $this->assertFalse(question_state::$gaveup->is_commented());
00106         $this->assertFalse(question_state::$gradedwrong->is_commented());
00107         $this->assertFalse(question_state::$gradedpartial->is_commented());
00108         $this->assertFalse(question_state::$gradedright->is_commented());
00109         $this->assertTrue(question_state::$manfinished->is_commented());
00110         $this->assertTrue(question_state::$mangaveup->is_commented());
00111         $this->assertTrue(question_state::$mangrwrong->is_commented());
00112         $this->assertTrue(question_state::$mangrpartial->is_commented());
00113         $this->assertTrue(question_state::$mangrright->is_commented());
00114     }
00115 
00116     public function test_graded_state_for_fraction() {
00117         $this->assertEqual(question_state::$gradedwrong, question_state::graded_state_for_fraction(-1));
00118         $this->assertEqual(question_state::$gradedwrong, question_state::graded_state_for_fraction(0));
00119         $this->assertEqual(question_state::$gradedpartial, question_state::graded_state_for_fraction(0.000001));
00120         $this->assertEqual(question_state::$gradedpartial, question_state::graded_state_for_fraction(0.999999));
00121         $this->assertEqual(question_state::$gradedright, question_state::graded_state_for_fraction(1));
00122     }
00123 
00124     public function test_manually_graded_state_for_other_state() {
00125         $this->assertEqual(question_state::$manfinished,
00126                 question_state::$finished->corresponding_commented_state(null));
00127         $this->assertEqual(question_state::$mangaveup,
00128                 question_state::$gaveup->corresponding_commented_state(null));
00129         $this->assertEqual(question_state::$manfinished,
00130                 question_state::$manfinished->corresponding_commented_state(null));
00131         $this->assertEqual(question_state::$mangaveup,
00132                 question_state::$mangaveup->corresponding_commented_state(null));
00133         $this->assertEqual(question_state::$needsgrading,
00134                 question_state::$mangrright->corresponding_commented_state(null));
00135         $this->assertEqual(question_state::$needsgrading,
00136                 question_state::$mangrright->corresponding_commented_state(null));
00137 
00138         $this->assertEqual(question_state::$mangrwrong,
00139                 question_state::$gaveup->corresponding_commented_state(0));
00140         $this->assertEqual(question_state::$mangrwrong,
00141                 question_state::$needsgrading->corresponding_commented_state(0));
00142         $this->assertEqual(question_state::$mangrwrong,
00143                 question_state::$gradedwrong->corresponding_commented_state(0));
00144         $this->assertEqual(question_state::$mangrwrong,
00145                 question_state::$gradedpartial->corresponding_commented_state(0));
00146         $this->assertEqual(question_state::$mangrwrong,
00147                 question_state::$gradedright->corresponding_commented_state(0));
00148         $this->assertEqual(question_state::$mangrwrong,
00149                 question_state::$mangrright->corresponding_commented_state(0));
00150         $this->assertEqual(question_state::$mangrwrong,
00151                 question_state::$mangrpartial->corresponding_commented_state(0));
00152         $this->assertEqual(question_state::$mangrwrong,
00153                 question_state::$mangrright->corresponding_commented_state(0));
00154 
00155         $this->assertEqual(question_state::$mangrpartial,
00156                 question_state::$gradedpartial->corresponding_commented_state(0.5));
00157 
00158         $this->assertEqual(question_state::$mangrright,
00159                 question_state::$gradedpartial->corresponding_commented_state(1));
00160     }
00161 }
 All Data Structures Namespaces Files Functions Variables Enumerations