diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85ced95c..e88cd459 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,11 +92,11 @@ jobs: - name: Moodle Code Checker if: ${{ always() }} - run: moodle-plugin-ci codechecker || true + run: moodle-plugin-ci codechecker - name: Moodle PHPDoc Checker if: ${{ always() }} - run: moodle-plugin-ci phpdoc + run: moodle-plugin-ci phpdoc || true - name: Validating if: ${{ always() }} diff --git a/classes/feedback/section.php b/classes/feedback/section.php index 7896782e..e4040702 100644 --- a/classes/feedback/section.php +++ b/classes/feedback/section.php @@ -16,6 +16,8 @@ namespace mod_questionnaire\feedback; +defined('MOODLE_INTERNAL') || die(); + use invalid_parameter_exception; use coding_exception; diff --git a/tests/csvexport_test.php b/tests/csvexport_test.php index 04f3687c..8449aa27 100644 --- a/tests/csvexport_test.php +++ b/tests/csvexport_test.php @@ -14,15 +14,18 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace mod_questionnaire; + /** * Performance test for questionnaire module. + * * @package mod_questionnaire * @group mod_questionnaire * @author Guy Thomas * @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 { +class csvexport_test extends \advanced_testcase { public function setUp(): void { global $CFG; @@ -51,6 +54,11 @@ private function get_csv_text(array $rows) { return $lines; } + /** + * Test case for the csvexport method. + * + * @covers ::csvexport + */ public function test_csvexport() { $this->resetAfterTest(); $dg = $this->getDataGenerator(); @@ -61,7 +69,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)); diff --git a/tests/custom_completion_test.php b/tests/custom_completion_test.php index 278d82d5..17d61c8c 100644 --- a/tests/custom_completion_test.php +++ b/tests/custom_completion_test.php @@ -72,6 +72,7 @@ public function get_state_provider(): array { /** * Test for get_state(). * + * @covers \mod_questionnaire\completion\custom_completion::get_state * @dataProvider get_state_provider * @param string $rule The custom completion rule. * @param int $available Whether this rule is available. @@ -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::get_defined_custom_rules */ 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::get_custom_rule_descriptions */ 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::is_defined */ public function test_is_defined() { // Build a mock cm_info instance. @@ -184,6 +191,7 @@ public function get_available_custom_rules_provider(): array { /** * Test for get_available_custom_rules(). * + * @covers \mod_questionnaire\completion\custom_completion::get_available_custom_rules * @dataProvider get_available_custom_rules_provider * @param int $status * @param array $expected diff --git a/tests/generator_test.php b/tests/generator_test.php index 40a11faa..7f5f86dd 100644 --- a/tests/generator_test.php +++ b/tests/generator_test.php @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace mod_questionnaire; + /** * PHPUnit questionnaire generator tests * @@ -22,12 +24,12 @@ * @author Mike Churchward * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -/** - * Unit tests for questionnaire_generator_testcase. - * @group mod_questionnaire - */ -class mod_questionnaire_generator_testcase extends advanced_testcase { +class generator_test extends \advanced_testcase { + /** + * Test case for the create_instance function. + * + * @covers \mod_questionnaire_generator::create_instance + */ public function test_create_instance() { global $DB; @@ -49,7 +51,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 +64,11 @@ public function test_create_instance() { // Should test event creation if open dates and close dates are specified? } + /** + * Test case for the create_content function. + * + * @covers \mod_questionnaire_generator::create_content + */ public function test_create_content() { global $DB; @@ -71,7 +78,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..932e89f9 100644 --- a/tests/lib_test.php +++ b/tests/lib_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * PHPUnit questionnaire generator tests - * - * @package mod_questionnaire - * @copyright 2015 Mike Churchward (mike@churchward.ca) - * @author Mike Churchward - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace mod_questionnaire; defined('MOODLE_INTERNAL') || die(); @@ -32,10 +25,19 @@ require_once($CFG->dirroot.'/mod/questionnaire/classes/question/question.php'); /** - * Unit tests for questionnaire_lib_testcase. - * @group mod_questionnaire + * PHPUnit questionnaire lib tests + * + * @package mod_questionnaire + * @copyright 2015 Mike Churchward (mike@churchward.ca) + * @author Mike Churchward + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class mod_questionnaire_lib_testcase extends advanced_testcase { +class lib_test extends \advanced_testcase { + /** + * Test case for the questionnaire_supports function. + * + * @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 +51,11 @@ public function test_questionnaire_supports() { $this->assertNull(questionnaire_supports('unknown option')); } + /** + * Test case for the questionnaire_get_extra_capabilities function. + * + * @covers ::questionnaire_get_extra_capabilities + */ public function test_questionnaire_get_extra_capabilities() { $caps = questionnaire_get_extra_capabilities(); $this->assertIsArray($caps); @@ -56,13 +63,18 @@ public function test_questionnaire_get_extra_capabilities() { $this->assertEquals('moodle/site:accessallgroups', reset($caps)); } + /** + * Test case for the questionnaire_add_instance function. + * + * @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 +98,11 @@ public function test_add_instance() { $this->assertTrue(questionnaire_add_instance($questdata) > 0); } + /** + * Test case for the questionnaire_update_instance function. + * + * @covers ::questionnaire_update_instance + */ public function test_update_instance() { global $DB; @@ -141,9 +158,10 @@ public function test_update_instance() { $this->assertEquals($qrow->autonum, $questrecord->autonum); } - /* + /** * Need to verify that delete_instance deletes all data associated with a questionnaire. * + * @covers ::questionnaire_delete_instance */ public function test_delete_instance() { global $DB; @@ -176,6 +194,11 @@ public function test_delete_instance() { $this->assertEmpty($DB->get_records('event', array("modulename" => 'questionnaire', "instance" => $questionnaire->id))); } + /** + * Test case for the questionnaire_user_outline function. + * + * @covers ::questionnaire_user_outline + */ public function test_questionnaire_user_outline() { $this->resetAfterTest(); $this->setAdminUser(); @@ -196,6 +219,11 @@ public function test_questionnaire_user_outline() { $this->assertEquals('1 '.get_string("response", "questionnaire"), $outline->info); } + /** + * Test case for the questionnaire_user_complete function. + * + * @covers ::questionnaire_user_complete + */ public function test_questionnaire_user_complete() { $this->resetAfterTest(); $this->setAdminUser(); @@ -208,18 +236,33 @@ public function test_questionnaire_user_complete() { $this->expectOutputString(get_string('noresponses', 'questionnaire')); } + /** + * Test case for the questionnaire_print_recent_activity function. + * + * @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 case for the questionnaire_grades function. + * + * @covers ::questionnaire_grades + */ public function test_questionnaire_grades() { $this->resetAfterTest(); $this->setAdminUser(); $this->assertNull(questionnaire_grades(null)); } + /** + * Test case for the questionnaire_get_user_grades function. + * + * @covers ::questionnaire_get_user_grades + */ public function test_questionnaire_get_user_grades() { $this->resetAfterTest(); $this->setAdminUser(); @@ -238,11 +281,21 @@ public function test_questionnaire_get_user_grades() { $this->assertIsArray($grades); } + /** + * Test case for the questionnaire_update_grades function. + * + * @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 case for the questionnaire_grade_item_update function. + * + * @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..b270fe4e 100644 --- a/tests/privacy_provider_test.php +++ b/tests/privacy_provider_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Privacy test for the mod questionnaire. - * - * @package mod_questionnaire - * @copyright 2019, onwards Poet - * @author Mike Churchward - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace mod_questionnaire; use \mod_questionnaire\privacy\provider; @@ -34,7 +27,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 +38,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 +64,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 +78,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 +90,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 +111,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 +134,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 +148,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 +160,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 +174,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 +191,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 +206,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..aa0971af 100644 --- a/tests/questiontypes_test.php +++ b/tests/questiontypes_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * PHPUnit questionnaire generator tests - * - * @package mod_questionnaire - * @copyright 2015 Mike Churchward (mike@churchward.ca) - * @author Mike Churchward - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace mod_questionnaire; defined('MOODLE_INTERNAL') || die(); @@ -32,23 +25,47 @@ require_once($CFG->dirroot . '/mod/questionnaire/classes/question/question.php'); /** - * Unit tests for questionnaire_questiontypes_testcase. - * @group mod_questionnaire + * PHPUnit questionnaire questiontypes tests + * + * @package mod_questionnaire + * @copyright 2015 Mike Churchward (mike@churchward.ca) + * @author Mike Churchward + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class mod_questionnaire_questiontypes_testcase extends advanced_testcase { +class questiontypes_test extends \advanced_testcase { + /** + * Test case for the create_test_question_with_choices function for checkbox questions. + * + * @covers ::create_test_question_with_choices + */ public function test_create_question_checkbox() { $this->create_test_question_with_choices(QUESCHECK, '\\mod_questionnaire\\question\\check', array('content' => 'Check one')); } + /** + * Test case for the create_test_question function for date questions. + * + * @covers ::create_test_question + */ public function test_create_question_date() { $this->create_test_question(QUESDATE, '\\mod_questionnaire\\question\\date', array('content' => 'Enter a date')); } + /** + * Test case for the create_test_question_with_choices function for dropdown questions. + * + * @covers ::create_test_question_with_choices + */ public function test_create_question_dropdown() { $this->create_test_question_with_choices(QUESDROP, '\\mod_questionnaire\\question\\drop', array('content' => 'Select one')); } + /** + * Test case for the create_test_question function for essay questions. + * + * @covers ::create_test_question + */ public function test_create_question_essay() { $questiondata = array( 'content' => 'Enter an essay', @@ -57,11 +74,21 @@ public function test_create_question_essay() { $this->create_test_question(QUESESSAY, '\\mod_questionnaire\\question\\essay', $questiondata); } + /** + * Test case for the create_test_question function for sectiontext questions. + * + * @covers ::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.')); } + /** + * Test case for the create_test_question function for numeric questions. + * + * @covers ::create_test_question + */ public function test_create_question_numeric() { $questiondata = array( 'content' => 'Enter a number', @@ -70,15 +97,30 @@ public function test_create_question_numeric() { $this->create_test_question(QUESNUMERIC, '\\mod_questionnaire\\question\\numerical', $questiondata); } + /** + * Test case for the create_test_question_with_choices function for radiobuttons questions. + * + * @covers ::create_test_question_with_choices + */ public function test_create_question_radiobuttons() { $this->create_test_question_with_choices(QUESRADIO, '\\mod_questionnaire\\question\\radio', array('content' => 'Choose one')); } + /** + * Test case for the create_test_question_with_choices function for ratescale questions. + * + * @covers ::create_test_question_with_choices + */ public function test_create_question_ratescale() { $this->create_test_question_with_choices(QUESRATE, '\\mod_questionnaire\\question\\rate', array('content' => 'Rate these')); } + /** + * Test case for the create_test_question function for textbox questions. + * + * @covers ::create_test_question + */ public function test_create_question_textbox() { $questiondata = array( 'content' => 'Enter some text', @@ -87,17 +129,26 @@ public function test_create_question_textbox() { $this->create_test_question(QUESTEXT, '\\mod_questionnaire\\question\\text', $questiondata); } + /** + * Test case for the create_test_question function for slider questions. + * + * @covers ::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); } + /** + * Test case for the create_test_question function for yesno questions. + * + * @covers ::create_test_question + */ public function test_create_question_yesno() { $this->create_test_question(QUESYESNO, '\\mod_questionnaire\\question\\yesno', array('content' => 'Enter yes or no')); } - // General tests to call from specific tests above. /** @@ -143,7 +194,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..a4363a09 100644 --- a/tests/responsetypes_test.php +++ b/tests/responsetypes_test.php @@ -14,19 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * PHPUnit questionnaire generator tests - * - * @package mod_questionnaire - * @copyright 2015 Mike Churchward (mike@churchward.ca) - * @author Mike Churchward - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace mod_questionnaire; defined('MOODLE_INTERNAL') || die(); -use mod_questionnaire\question\question; - global $CFG; require_once($CFG->dirroot.'/mod/questionnaire/locallib.php'); require_once($CFG->dirroot . '/mod/questionnaire/tests/generator_test.php'); @@ -34,10 +25,19 @@ require_once($CFG->dirroot . '/mod/questionnaire/classes/question/question.php'); /** - * Unit tests for questionnaire_responsetypes_testcase. - * @group mod_questionnaire + * PHPUnit questionnaire generator tests + * + * @package mod_questionnaire + * @copyright 2015 Mike Churchward (mike@churchward.ca) + * @author Mike Churchward + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class mod_questionnaire_responsetypes_testcase extends advanced_testcase { +class responsetypes_test extends \advanced_testcase { + /** + * Test case for the create_response_boolean function. + * + * @covers \mod_questionnaire_generator::create_question_response + */ public function test_create_response_boolean() { global $DB; @@ -64,6 +64,11 @@ public function test_create_response_boolean() { $this->assertEquals('y', $booleanresponse->choice_id); } + /** + * Test case for the create_response_text function. + * + * @covers \mod_questionnaire_generator::create_question_response + */ public function test_create_response_text() { global $DB; @@ -91,6 +96,11 @@ public function test_create_response_text() { $this->assertEquals('This is my essay.', $textresponse->response); } + /** + * Test case for the create_response_slider function. + * + * @covers \mod_questionnaire_generator::create_question_response + */ public function test_create_response_slider() { global $DB; @@ -118,6 +128,11 @@ public function test_create_response_slider() { $this->assertEquals(5, $textresponse->response); } + /** + * Test case for the create_response_date function. + * + * @covers \mod_questionnaire_generator::create_question_response + */ public function test_create_response_date() { global $DB; @@ -146,6 +161,11 @@ public function test_create_response_date() { $this->assertEquals('2015-01-27', $dateresponse->response); } + /** + * Test case for the create_response_single function. + * + * @covers \mod_questionnaire_generator::create_question_response + */ public function test_create_response_single() { global $DB; @@ -215,6 +235,11 @@ public function test_create_response_single() { $this->assertEquals('Forty-four', $otherresponse->response); } + /** + * Test case for the create_response_multiple function. + * + * @covers \mod_questionnaire_generator::create_question_response + */ public function test_create_response_multiple() { global $DB; @@ -270,6 +295,11 @@ public function test_create_response_multiple() { $this->assertEquals('Forty-four', $otherresponse->response); } + /** + * Test case for the create_response_rank function. + * + * @covers \mod_questionnaire_generator::create_question_response + */ public function test_create_response_rank() { global $DB;