From 76149901a93e9afb18a9bc0cb32dcea7570ba946 Mon Sep 17 00:00:00 2001 From: Jamie Pratt Date: Tue, 2 Jul 2013 20:07:23 +0700 Subject: [PATCH] MDL-40449 use data generator to create random qs --- question/type/random/tests/helper.php | 52 +++++++++++++++++++ .../type/random/tests/questiontype_test.php | 14 +++++ 2 files changed, 66 insertions(+) create mode 100644 question/type/random/tests/helper.php diff --git a/question/type/random/tests/helper.php b/question/type/random/tests/helper.php new file mode 100644 index 00000000000..f857b603340 --- /dev/null +++ b/question/type/random/tests/helper.php @@ -0,0 +1,52 @@ +. + +/** + * Test helpers for the random question type. + * + * @package qtype_random + * @copyright 2013 The Open University + * @author Jamie Pratt + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + + +defined('MOODLE_INTERNAL') || die(); + + +/** + * Test helper class for the random question type. + * + * @copyright 2013 The Open University + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class qtype_random_test_helper extends question_test_helper { + public function get_test_questions() { + return array('basic'); + } + + /** + * Gets the question form data for a random question which selects just from + * it's own category and not from sub categories. Category id is not set. + * @return stdClass + */ + public function get_random_question_form_data_basic() { + $form = new stdClass(); + $form->questiontext = array('text' => ''); + $form->includingsubcategories = '0'; + return $form; + } +} diff --git a/question/type/random/tests/questiontype_test.php b/question/type/random/tests/questiontype_test.php index 50f5592411b..fae010dfff9 100644 --- a/question/type/random/tests/questiontype_test.php +++ b/question/type/random/tests/questiontype_test.php @@ -62,4 +62,18 @@ class qtype_random_test extends advanced_testcase { public function test_get_possible_responses() { $this->assertEquals(array(), $this->qtype->get_possible_responses(null)); } + + public function test_question_creation() { + $this->resetAfterTest(); + $generator = $this->getDataGenerator()->get_plugin_generator('core_question'); + $cat = $generator->create_question_category(); + $question1 = $generator->create_question('shortanswer', null, array('category' => $cat->id)); + $question2 = $generator->create_question('numerical', null, array('category' => $cat->id)); + + $randomquestion = $generator->create_question('random', null, array('category' => $cat->id)); + + $q = question_bank::load_question($randomquestion->id); + + $this->assertContains($q->id, array($question1->id, $question2->id)); + } }