diff --git a/externallib.php b/externallib.php index 70371e80..7715fc1e 100644 --- a/externallib.php +++ b/externallib.php @@ -26,6 +26,8 @@ namespace mod_questionnaire; +defined('MOODLE_INTERNAL') || die(); + require_once($CFG->libdir . '/externallib.php'); use external_api; diff --git a/tests/csvexport_test.php b/tests/csvexport_test.php index bef453e2..bf90dbef 100644 --- a/tests/csvexport_test.php +++ b/tests/csvexport_test.php @@ -22,7 +22,14 @@ * @copyright Copyright (c) 2015 Moodlerooms Inc. (http://www.moodlerooms.com) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class mod_questionnaire_csvexport_test extends advanced_testcase { + +namespace mod_questionnaire; + +/** + * Unit tests for questionnaire_csvexport_test. + * @group mod_questionnaire + */ +class csvexport_test extends \advanced_testcase { public function setUp(): void { global $CFG; @@ -53,6 +60,8 @@ private function get_csv_text(array $rows) { /** * Tests the CSV export. + * + * @covers \questionnaire::generate_csv */ public function test_csvexport() { $this->resetAfterTest(); @@ -64,7 +73,7 @@ public function test_csvexport() { $questionnaires = $qdg->questionnaires(); foreach ($questionnaires as $questionnaire) { list ($course, $cm) = get_course_and_cm_from_instance($questionnaire->id, 'questionnaire', $questionnaire->course); - $questionnaireinst = new questionnaire($course, $cm, 0, $questionnaire); + $questionnaireinst = new \questionnaire($course, $cm, 0, $questionnaire); // Test for only complete responses. $newoutput = $this->get_csv_text($questionnaireinst->generate_csv(0, '', '', 0, 0, 0)); @@ -84,6 +93,8 @@ public function test_csvexport() { /** * Tests the CSV export with identity fields and anonymous questionnaires. + * + * @covers \questionnaire::generate_csv */ public function test_csvexport_identity_fields() { global $DB; @@ -142,7 +153,7 @@ private function do_test_csvexport_identity_fields($course, $cm, $user, $roleid, assign_capability('moodle/site:viewuseridentity', CAP_ALLOW, $roleid, $context); // Generate CSV output. - $questionnaire = new questionnaire($course, $cm, $item->id); + $questionnaire = new \questionnaire($course, $cm, $item->id); $output = $questionnaire->generate_csv(0, '', '', 0, 0, 1); $this->assertNotNull($output); diff --git a/tests/custom_completion_test.php b/tests/custom_completion_test.php index 278d82d5..cb19f612 100644 --- a/tests/custom_completion_test.php +++ b/tests/custom_completion_test.php @@ -26,7 +26,6 @@ namespace mod_questionnaire; -use advanced_testcase; use cm_info; use coding_exception; use mod_questionnaire\completion\custom_completion; @@ -45,7 +44,7 @@ * @copyright 2022 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class custom_completion_test extends advanced_testcase { +class custom_completion_test extends \advanced_testcase { /** * Data provider for get_state(). @@ -79,6 +78,8 @@ public function get_state_provider(): array { * @param int|null $status Expected status. * @param string|null $exception Expected exception. * @throws coding_exception + * + * @covers \mod_questionnaire\completion\custom_completion */ public function test_get_state(string $rule, int $available, ?bool $submitted, ?int $status, ?string $exception) { if (!is_null($exception)) { @@ -114,6 +115,8 @@ public function test_get_state(string $rule, int $available, ?bool $submitted, ? /** * Test for get_defined_custom_rules(). + * + * @covers \mod_questionnaire\completion\custom_completion */ public function test_get_defined_custom_rules() { $rules = custom_completion::get_defined_custom_rules(); @@ -123,6 +126,8 @@ public function test_get_defined_custom_rules() { /** * Test for get_defined_custom_rule_descriptions(). + * + * @covers \mod_questionnaire\completion\custom_completion */ public function test_get_custom_rule_descriptions() { // Get defined custom rules. @@ -149,6 +154,8 @@ public function test_get_custom_rule_descriptions() { /** * Test for is_defined(). + * + * @covers \mod_questionnaire\completion\custom_completion */ public function test_is_defined() { // Build a mock cm_info instance. @@ -187,6 +194,8 @@ public function get_available_custom_rules_provider(): array { * @dataProvider get_available_custom_rules_provider * @param int $status * @param array $expected + * + * @covers \mod_questionnaire\completion\custom_completion */ public function test_get_available_custom_rules(int $status, array $expected) { $customdataval = [ diff --git a/tests/generator/lib.php b/tests/generator/lib.php index be45f68e..447c5246 100644 --- a/tests/generator/lib.php +++ b/tests/generator/lib.php @@ -108,7 +108,7 @@ public function create_instance($record = null, array $options = null) { $instance = parent::create_instance($record, (array)$options); $cm = get_coursemodule_from_instance('questionnaire', $instance->id); $course = get_course($cm->course); - $questionnaire = new questionnaire($course, $cm, 0, $instance, false); + $questionnaire = new \questionnaire($course, $cm, 0, $instance, false); $this->questionnaires[$instance->id] = $questionnaire; @@ -220,7 +220,7 @@ public function create_test_questionnaire($course, $qtype = null, $questiondata $questiondata['content'] = isset($questiondata['content']) ? $questiondata['content'] : 'Test content'; $this->create_question($questionnaire, $questiondata, $choicedata); } - $questionnaire = new questionnaire($course, $cm, $questionnaire->id, null, true); + $questionnaire = new \questionnaire($course, $cm, $questionnaire->id, null, true); return $questionnaire; } diff --git a/tests/generator_test.php b/tests/generator_test.php index 40a11faa..707ecf6a 100644 --- a/tests/generator_test.php +++ b/tests/generator_test.php @@ -23,11 +23,22 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace mod_questionnaire; + /** * Unit tests for questionnaire_generator_testcase. * @group mod_questionnaire */ -class mod_questionnaire_generator_testcase extends advanced_testcase { +class generator_test extends \advanced_testcase { + /** + * Test generator create_instance function. + * + * @return void + * @throws coding_exception + * @throws dml_exception + * + * @covers \mod_questionnaire\generator\ + */ public function test_create_instance() { global $DB; @@ -49,7 +60,7 @@ public function test_create_instance() { $this->assertEquals('questionnaire', $cm->modname); $this->assertEquals($course->id, $cm->course); - $context = context_module::instance($cm->id); + $context = \context_module::instance($cm->id); $this->assertEquals($questionnaire->cmid, $context->instanceid); $survey = $DB->get_record('questionnaire_survey', array('id' => $questionnaire->sid)); @@ -62,6 +73,15 @@ public function test_create_instance() { // Should test event creation if open dates and close dates are specified? } + /** + * Test generator create_content function. + * + * @return void + * @throws coding_exception + * @throws dml_exception + * + * @covers \mod_questionnaire\generator\ + */ public function test_create_content() { global $DB; @@ -71,7 +91,7 @@ public function test_create_content() { $generator = $this->getDataGenerator()->get_plugin_generator('mod_questionnaire'); $questionnaire = $generator->create_instance(array('course' => $course->id)); $cm = get_coursemodule_from_instance('questionnaire', $questionnaire->id); - $questionnaire = new questionnaire($course, $cm, $questionnaire->id, null, false); + $questionnaire = new \questionnaire($course, $cm, $questionnaire->id, null, false); $newcontent = array( 'title' => 'New title', diff --git a/tests/lib_test.php b/tests/lib_test.php index e70974ba..4f828306 100644 --- a/tests/lib_test.php +++ b/tests/lib_test.php @@ -23,10 +23,12 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -defined('MOODLE_INTERNAL') || die(); +namespace mod_questionnaire; use mod_questionnaire\question\question; +defined('MOODLE_INTERNAL') || die(); + global $CFG; require_once($CFG->dirroot.'/mod/questionnaire/lib.php'); require_once($CFG->dirroot.'/mod/questionnaire/classes/question/question.php'); @@ -35,7 +37,15 @@ * Unit tests for questionnaire_lib_testcase. * @group mod_questionnaire */ -class mod_questionnaire_lib_testcase extends advanced_testcase { +class lib_test extends \advanced_testcase { + + /** + * Test for questionnaire_supports. + * + * @return void + * + * @covers \questionnaire_supports + */ public function test_questionnaire_supports() { $this->assertTrue(questionnaire_supports(FEATURE_BACKUP_MOODLE2)); $this->assertFalse(questionnaire_supports(FEATURE_COMPLETION_TRACKS_VIEWS)); @@ -49,6 +59,13 @@ public function test_questionnaire_supports() { $this->assertNull(questionnaire_supports('unknown option')); } + /** + * Test for questionnaire_get_extra_capabilities. + * + * @return void + * + * @covers \questionnaire_get_extra_capabilities + */ public function test_questionnaire_get_extra_capabilities() { $caps = questionnaire_get_extra_capabilities(); $this->assertIsArray($caps); @@ -56,13 +73,21 @@ public function test_questionnaire_get_extra_capabilities() { $this->assertEquals('moodle/site:accessallgroups', reset($caps)); } + /** + * Test for questionnaire_add_instance. + * + * @return void + * @throws moodle_exception + * + * @covers \questionnaire_add_instance + */ public function test_add_instance() { $this->resetAfterTest(); $this->setAdminUser(); $course = $this->getDataGenerator()->create_course(); // Create test data as a record. - $questdata = new stdClass(); + $questdata = new \stdClass(); $questdata->course = $course->id; $questdata->coursemodule = ''; $questdata->name = 'Test questionnaire'; @@ -86,6 +111,14 @@ public function test_add_instance() { $this->assertTrue(questionnaire_add_instance($questdata) > 0); } + /** + * Test for questionnaire_update_instance(). + * + * @return void + * @throws dml_exception + * + * @covers \questionnaire_update_instance + */ public function test_update_instance() { global $DB; @@ -141,9 +174,15 @@ public function test_update_instance() { $this->assertEquals($qrow->autonum, $questrecord->autonum); } - /* + /** + * Test for questionnaire_delete_instance(). + * * Need to verify that delete_instance deletes all data associated with a questionnaire. * + * @return void + * @throws dml_exception + * + * @covers \questionnaire_delete_instance */ public function test_delete_instance() { global $DB; @@ -176,6 +215,14 @@ public function test_delete_instance() { $this->assertEmpty($DB->get_records('event', array("modulename" => 'questionnaire', "instance" => $questionnaire->id))); } + /** + * Test for questionnaire_user_outline(). + * + * @return void + * @throws coding_exception + * + * @covers \questionnaire_user_outline + */ public function test_questionnaire_user_outline() { $this->resetAfterTest(); $this->setAdminUser(); @@ -196,6 +243,14 @@ public function test_questionnaire_user_outline() { $this->assertEquals('1 '.get_string("response", "questionnaire"), $outline->info); } + /** + * Test for questionnaire_user_complete(). + * + * @return void + * @throws coding_exception + * + * @covers \questionnaire_user_complete + */ public function test_questionnaire_user_complete() { $this->resetAfterTest(); $this->setAdminUser(); @@ -208,18 +263,39 @@ public function test_questionnaire_user_complete() { $this->expectOutputString(get_string('noresponses', 'questionnaire')); } + /** + * Test for questionnaire_print_recent_activity(). + * + * @return void + * + * @covers \questionnaire_print_recent_activity + */ public function test_questionnaire_print_recent_activity() { $this->resetAfterTest(); $this->setAdminUser(); $this->assertFalse(questionnaire_print_recent_activity(null, null, null)); } + /** + * Test for questionnaire_grades(). + * + * @return void + * + * @covers \questionnaire_grades + */ public function test_questionnaire_grades() { $this->resetAfterTest(); $this->setAdminUser(); $this->assertNull(questionnaire_grades(null)); } + /** + * Test for questionnaire_get_user_grades(). + * + * @return void + * + * @covers \questionnaire_get_user_grades + */ public function test_questionnaire_get_user_grades() { $this->resetAfterTest(); $this->setAdminUser(); @@ -238,11 +314,25 @@ public function test_questionnaire_get_user_grades() { $this->assertIsArray($grades); } + /** + * Test for questionnaire_update_grades(). + * + * @return void + * + * @covers \questionnaire_update_grades + */ public function test_questionnaire_update_grades() { // Don't know how to test this yet! It doesn't return anything. $this->assertNull(questionnaire_update_grades()); } + /** + * Test for questionnaire_grade_item_update(). + * + * @return void + * + * @covers \questionnaire_grade_item_update + */ public function test_questionnaire_grade_item_update() { $this->resetAfterTest(); $this->setAdminUser(); diff --git a/tests/privacy_provider_test.php b/tests/privacy_provider_test.php index c5bbf014..0cdd6122 100644 --- a/tests/privacy_provider_test.php +++ b/tests/privacy_provider_test.php @@ -23,6 +23,8 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace mod_questionnaire; + use \mod_questionnaire\privacy\provider; /** @@ -34,7 +36,7 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @group mod_questionnaire */ -class mod_questionnaire_privacy_testcase extends \core_privacy\tests\provider_testcase { +class privacy_provider_test extends \core_privacy\tests\provider_testcase { /** * Tests set up. */ @@ -45,6 +47,8 @@ public function setUp(): void { /** * Check that the expected context is returned if there is any user data for this module. + * + * @covers \mod_questionnaire\privacy\provider::get_contexts_for_userid */ public function test_get_contexts_for_userid() { global $DB; @@ -69,6 +73,8 @@ public function test_get_contexts_for_userid() { /** * Test that only users with a questionnaire context are fetched. + * + * @covers \mod_questionnaire\privacy\provider::get_users_in_context */ public function test_get_users_in_context() { global $DB; @@ -81,7 +87,7 @@ public function test_get_users_in_context() { $questionnaires = $qdg->questionnaires(); $questionnaire = current($questionnaires); list ($course, $cm) = get_course_and_cm_from_instance($questionnaire->id, 'questionnaire', $questionnaire->course); - $cmcontext = context_module::instance($cm->id); + $cmcontext = \context_module::instance($cm->id); $userlist = new \core_privacy\local\request\userlist($cmcontext, 'mod_questionnaire'); @@ -93,13 +99,15 @@ public function test_get_users_in_context() { $this->assertEquals($expected, $actual); // The list of users for other contexts should not return any users. - $userlist = new \core_privacy\local\request\userlist(context_system::instance(), 'mod_questionnaire'); + $userlist = new \core_privacy\local\request\userlist(\context_system::instance(), 'mod_questionnaire'); provider::get_users_in_context($userlist); $this->assertCount(0, $userlist); } /** * Test that user data is exported correctly. + * + * @covers \mod_questionnaire\privacy\provider::export_user_data */ public function test_export_user_data() { global $DB; @@ -112,12 +120,12 @@ public function test_export_user_data() { $questionnaires = $qdg->questionnaires(); $questionnaire = current($questionnaires); list ($course, $cm) = get_course_and_cm_from_instance($questionnaire->id, 'questionnaire', $questionnaire->course); - $cmcontext = context_module::instance($cm->id); + $cmcontext = \context_module::instance($cm->id); $writer = \core_privacy\local\request\writer::with_context($cmcontext); $this->assertFalse($writer->has_any_data()); - $approvedlist = new core_privacy\local\request\approved_contextlist($user, 'mod_questionnaire', [$cmcontext->id]); + $approvedlist = new \core_privacy\local\request\approved_contextlist($user, 'mod_questionnaire', [$cmcontext->id]); provider::export_user_data($approvedlist); $data = $writer->get_data([]); @@ -135,6 +143,8 @@ public function test_export_user_data() { /** * Test deleting all user data for a specific context. + * + * @covers \mod_questionnaire\privacy\provider::delete_data_for_all_users_in_context */ public function test_delete_data_for_all_users_in_context() { global $DB; @@ -147,7 +157,7 @@ public function test_delete_data_for_all_users_in_context() { $questionnaires = $qdg->questionnaires(); $questionnaire = current($questionnaires); list ($course, $cm) = get_course_and_cm_from_instance($questionnaire->id, 'questionnaire', $questionnaire->course); - $cmcontext = context_module::instance($cm->id); + $cmcontext = \context_module::instance($cm->id); // Get all accounts. There should be two. $this->assertCount(2, $DB->get_records('questionnaire_response', [])); @@ -159,6 +169,8 @@ public function test_delete_data_for_all_users_in_context() { /** * This should work identical to the above test. + * + * @covers \mod_questionnaire\privacy\provider::delete_data_for_user */ public function test_delete_data_for_user() { global $DB; @@ -171,7 +183,7 @@ public function test_delete_data_for_user() { $questionnaires = $qdg->questionnaires(); $questionnaire = current($questionnaires); list ($course, $cm) = get_course_and_cm_from_instance($questionnaire->id, 'questionnaire', $questionnaire->course); - $cmcontext = context_module::instance($cm->id); + $cmcontext = \context_module::instance($cm->id); // Get all accounts. There should be two. $this->assertCount(2, $DB->get_records('questionnaire_response', [])); @@ -188,6 +200,8 @@ public function test_delete_data_for_user() { /** * Test that data for users in approved userlist is deleted. + * + * @covers \mod_questionnaire\privacy\provider::delete_data_for_users */ public function test_delete_data_for_users() { global $DB; @@ -201,7 +215,7 @@ public function test_delete_data_for_users() { $questionnaires = $qdg->questionnaires(); $questionnaire = current($questionnaires); list ($course, $cm) = get_course_and_cm_from_instance($questionnaire->id, 'questionnaire', $questionnaire->course); - $cmcontext = context_module::instance($cm->id); + $cmcontext = \context_module::instance($cm->id); $approveduserlist = new \core_privacy\local\request\approved_userlist($cmcontext, 'questionnaire', [$user->id, $user3->id]); diff --git a/tests/questiontypes_test.php b/tests/questiontypes_test.php index ad4ceabf..53944a09 100644 --- a/tests/questiontypes_test.php +++ b/tests/questiontypes_test.php @@ -23,10 +23,12 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -defined('MOODLE_INTERNAL') || die(); +namespace mod_questionnaire; use mod_questionnaire\question\question; +defined('MOODLE_INTERNAL') || die(); + global $CFG; require_once($CFG->dirroot.'/mod/questionnaire/locallib.php'); require_once($CFG->dirroot . '/mod/questionnaire/classes/question/question.php'); @@ -35,20 +37,49 @@ * Unit tests for questionnaire_questiontypes_testcase. * @group mod_questionnaire */ -class mod_questionnaire_questiontypes_testcase extends advanced_testcase { +class questiontypes_test extends \advanced_testcase { + + /** + * Create a check boxes test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_checkbox() { $this->create_test_question_with_choices(QUESCHECK, '\\mod_questionnaire\\question\\check', array('content' => 'Check one')); } + /** + * Create a date test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_date() { $this->create_test_question(QUESDATE, '\\mod_questionnaire\\question\\date', array('content' => 'Enter a date')); } + /** + * Create a dropdown box test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_dropdown() { $this->create_test_question_with_choices(QUESDROP, '\\mod_questionnaire\\question\\drop', array('content' => 'Select one')); } + /** + * Create an essay test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_essay() { $questiondata = array( 'content' => 'Enter an essay', @@ -57,11 +88,25 @@ public function test_create_question_essay() { $this->create_test_question(QUESESSAY, '\\mod_questionnaire\\question\\essay', $questiondata); } + /** + * Create a sectiontext test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_sectiontext() { $this->create_test_question(QUESSECTIONTEXT, '\\mod_questionnaire\\question\\sectiontext', array('name' => null, 'content' => 'This a section label.')); } + /** + * Create a numerical test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_numeric() { $questiondata = array( 'content' => 'Enter a number', @@ -70,15 +115,36 @@ public function test_create_question_numeric() { $this->create_test_question(QUESNUMERIC, '\\mod_questionnaire\\question\\numerical', $questiondata); } + /** + * Create a radio test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_radiobuttons() { $this->create_test_question_with_choices(QUESRADIO, '\\mod_questionnaire\\question\\radio', array('content' => 'Choose one')); } + /** + * Create a rate test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_ratescale() { $this->create_test_question_with_choices(QUESRATE, '\\mod_questionnaire\\question\\rate', array('content' => 'Rate these')); } + /** + * Create a text test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_textbox() { $questiondata = array( 'content' => 'Enter some text', @@ -87,12 +153,26 @@ public function test_create_question_textbox() { $this->create_test_question(QUESTEXT, '\\mod_questionnaire\\question\\text', $questiondata); } + /** + * Create a slider test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_slider() { $questiondata = array( 'content' => 'Enter a number'); $this->create_test_question(QUESSLIDER, '\\mod_questionnaire\\question\\slider', $questiondata); } + /** + * Create a yes/no test question. + * + * @return void + * + * @covers \mod_questionnaire\questiontypes_test::create_test_question + */ public function test_create_question_yesno() { $this->create_test_question(QUESYESNO, '\\mod_questionnaire\\question\\yesno', array('content' => 'Enter yes or no')); } @@ -143,7 +223,7 @@ private function create_test_question($qtype, $questionclass, $questiondata = ar } // Questionnaire object should now have question record(s). - $questionnaire = new questionnaire($course, $cm, $questionnaire->id, null, true); + $questionnaire = new \questionnaire($course, $cm, $questionnaire->id, null, true); $this->assertTrue($DB->record_exists('questionnaire_question', array('id' => $question->id))); $this->assertEquals('array', gettype($questionnaire->questions)); $this->assertTrue(array_key_exists($question->id, $questionnaire->questions)); diff --git a/tests/responsetypes_test.php b/tests/responsetypes_test.php index 76c83e10..e10db5ef 100644 --- a/tests/responsetypes_test.php +++ b/tests/responsetypes_test.php @@ -23,10 +23,12 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -defined('MOODLE_INTERNAL') || die(); +namespace mod_questionnaire; use mod_questionnaire\question\question; +defined('MOODLE_INTERNAL') || die(); + global $CFG; require_once($CFG->dirroot.'/mod/questionnaire/locallib.php'); require_once($CFG->dirroot . '/mod/questionnaire/tests/generator_test.php'); @@ -37,7 +39,15 @@ * Unit tests for questionnaire_responsetypes_testcase. * @group mod_questionnaire */ -class mod_questionnaire_responsetypes_testcase extends advanced_testcase { +class responsetypes_test extends \advanced_testcase { + /** + * Test responses in a yes/no question. + * + * @return void + * @throws dml_exception + * + * @covers \mod_questionnaire\question\yesno + */ public function test_create_response_boolean() { global $DB; @@ -64,6 +74,14 @@ public function test_create_response_boolean() { $this->assertEquals('y', $booleanresponse->choice_id); } + /** + * Test responses in a essay question. + * + * @return void + * @throws dml_exception + * + * @covers \mod_questionnaire\question\essay + */ public function test_create_response_text() { global $DB; @@ -91,6 +109,14 @@ public function test_create_response_text() { $this->assertEquals('This is my essay.', $textresponse->response); } + /** + * Test responses in a slider question. + * + * @return void + * @throws dml_exception + * + * @covers \mod_questionnaire\question\slider + */ public function test_create_response_slider() { global $DB; @@ -118,6 +144,14 @@ public function test_create_response_slider() { $this->assertEquals(5, $textresponse->response); } + /** + * Test responses in a date question. + * + * @return void + * @throws dml_exception + * + * @covers \mod_questionnaire\question\date + */ public function test_create_response_date() { global $DB; @@ -146,6 +180,14 @@ public function test_create_response_date() { $this->assertEquals('2015-01-27', $dateresponse->response); } + /** + * Test responses in a single choice radio question. + * + * @return void + * @throws dml_exception + * + * @covers \mod_questionnaire\question\radio + */ public function test_create_response_single() { global $DB; @@ -215,6 +257,14 @@ public function test_create_response_single() { $this->assertEquals('Forty-four', $otherresponse->response); } + /** + * Test responses in a multiple choices question. + * + * @return void + * @throws dml_exception + * + * @covers \mod_questionnaire\question\rate + */ public function test_create_response_multiple() { global $DB; @@ -270,6 +320,14 @@ public function test_create_response_multiple() { $this->assertEquals('Forty-four', $otherresponse->response); } + /** + * Test response's ranks in a rate question. + * + * @return void + * @throws dml_exception + * + * @covers \mod_questionnaire\question\rate + */ public function test_create_response_rank() { global $DB; @@ -335,7 +393,7 @@ public function create_test_questionnaire($qtype, $questiondata = [], $choicedat $questiondata['content'] = isset($questiondata['content']) ? $questiondata['content'] : 'Test content'; $generator->create_question($questionnaire, $questiondata, $choicedata); - $questionnaire = new questionnaire( $course, $cm, $questionnaire->id, null, true); + $questionnaire = new \questionnaire( $course, $cm, $questionnaire->id, null, true); return $questionnaire; }