[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/question/type/random/tests/ -> questiontype_test.php (source)

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * Unit tests for the random question type class.
  19   *
  20   * @package    qtype
  21   * @subpackage random
  22   * @copyright  2010 The Open University
  23   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   */
  25  
  26  
  27  defined('MOODLE_INTERNAL') || die();
  28  
  29  global $CFG;
  30  require_once($CFG->dirroot . '/question/type/random/questiontype.php');
  31  
  32  
  33  /**
  34   * Unit tests for the random question type class.
  35   *
  36   * @copyright  2010 The Open University
  37   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  38   */
  39  class qtype_random_test extends advanced_testcase {
  40      protected $qtype;
  41  
  42      protected function setUp() {
  43          $this->qtype = new qtype_random();
  44      }
  45  
  46      protected function tearDown() {
  47          $this->qtype = null;
  48      }
  49  
  50      public function test_name() {
  51          $this->assertEquals($this->qtype->name(), 'random');
  52      }
  53  
  54      public function test_can_analyse_responses() {
  55          $this->assertFalse($this->qtype->can_analyse_responses());
  56      }
  57  
  58      public function test_get_random_guess_score() {
  59          $this->assertNull($this->qtype->get_random_guess_score(null));
  60      }
  61  
  62      public function test_get_possible_responses() {
  63          $this->assertEquals(array(), $this->qtype->get_possible_responses(null));
  64      }
  65  
  66      public function test_question_creation() {
  67          $this->resetAfterTest();
  68          question_bank::get_qtype('random')->clear_caches_before_testing();
  69  
  70          $generator = $this->getDataGenerator()->get_plugin_generator('core_question');
  71          $cat = $generator->create_question_category();
  72          $question1 = $generator->create_question('shortanswer', null, array('category' => $cat->id));
  73          $question2 = $generator->create_question('numerical', null, array('category' => $cat->id));
  74  
  75          $randomquestion = $generator->create_question('random', null, array('category' => $cat->id));
  76  
  77          $expectedids = array($question1->id, $question2->id);
  78          $actualids = question_bank::get_qtype('random')->get_available_questions_from_category($cat->id, 0);
  79          sort($expectedids);
  80          sort($actualids);
  81          $this->assertEquals($expectedids, $actualids);
  82  
  83          $q = question_bank::load_question($randomquestion->id);
  84  
  85          $this->assertContains($q->id, array($question1->id, $question2->id));
  86      }
  87  }


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1