Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mod_quiz_generator Class Reference
Inheritance diagram for mod_quiz_generator:
testing_module_generator component_generator_base

Public Member Functions

 create_attempt ($quizid, $userid, array $forcedrandomquestions=[], array $forcedvariants=[])
 Create a quiz attempt for a particular user at a particular course. More...
 
 create_content ($instance, $record=array())
 Generates a piece of content for the module. More...
 
 create_instance ($record=null, array $options=null)
 Creates an instance of the module for testing purposes. More...
 
 create_override (array $data)
 Create a quiz override (either user or group). More...
 
 get_modulename ()
 Returns module name. More...
 
 reset ()
 To be called from data reset code only, do not use in tests. More...
 
 submit_responses ($attemptid, array $responses, $checkbutton, $finishattempt)
 Submit responses to a quiz attempt. More...
 

Protected Member Functions

 post_add_instance ($id, $cmid)
 Called after *_add_instance() More...
 
 precreate_course_module ($courseid, array $options)
 Create course module and link it to course. More...
 
 prepare_moduleinfo_record ($record, $options)
 Merges together arguments $record and $options and fills default module fields that are shared by all module types. More...
 
 set_user (?stdClass $user=null)
 Set the current user during data generation. More...
 

Protected Attributes

testing_data_generator $datagenerator
 
number $instancecount = 0
 of created instances
 

Member Function Documentation

◆ create_attempt()

mod_quiz_generator::create_attempt (   $quizid,
  $userid,
array  $forcedrandomquestions = [],
array  $forcedvariants = [] 
)

Create a quiz attempt for a particular user at a particular course.

Currently this method can only create a first attempt for each user at each quiz. TODO remove this limitation.

Parameters
int$quizidthe quiz id (from the mdl_quit table, not cmid).
int$useridthe user id.
array$forcedrandomquestionsslot => questionid. Optional, used with random questions, to control which one is 'randomly' selected in that slot.
array$forcedvariantsslot => variantno. Optional. Optional, used with question where get_num_variants is > 1, to control which variants is 'randomly' selected.
Return values
stdClassthe new attempt.

◆ create_content()

testing_module_generator::create_content (   $instance,
  $record = array() 
)
inherited

Generates a piece of content for the module.

User is usually taken from global $USER variable.

Parameters
stdClass$instanceobject returned from create_instance() call
stdClass | array$record
Return values
stdClassgenerated object
Exceptions
coding_exceptionif function is not implemented by module

Reimplemented in mod_h5pactivity_generator, mod_book_generator, mod_forum_generator, mod_lesson_generator, and mod_wiki_generator.

◆ create_instance()

mod_quiz_generator::create_instance (   $record = null,
array  $options = null 
)

Creates an instance of the module for testing purposes.

Module type will be taken from the class name. Each module type may overwrite this function to add other default values used by it.

Parameters
array | stdClass$recorddata for module being generated. Requires 'course' key (an id or the full object). Also can have any fields from add module form.
null | array$optionsgeneral options for course module. Since 2.6 it is possible to omit this argument by merging options into $record
Return values
stdClassrecord from module-defined table with additional field cmid (corresponding id in course_modules table)

Reimplemented from testing_module_generator.

◆ create_override()

mod_quiz_generator::create_override ( array  $data)

Create a quiz override (either user or group).

Parameters
array$datamust specify quizid, and one of userid or groupid.

◆ get_modulename()

testing_module_generator::get_modulename ( )
inherited

Returns module name.

Return values
stringname of module that this class describes
Exceptions
coding_exceptionif class invalid

◆ post_add_instance()

testing_module_generator::post_add_instance (   $id,
  $cmid 
)
protectedinherited

Called after *_add_instance()

Since 2.6 it is recommended to use function add_moduleinfo() to create a module.

Deprecated:
since 2.6
See also
testing_module_generator::create_instance()
Parameters
int$id
int$cmid
Return values
stdClassmodule instance

◆ precreate_course_module()

testing_module_generator::precreate_course_module (   $courseid,
array  $options 
)
protectedinherited

Create course module and link it to course.

Since 2.6 it is recommended to use function add_moduleinfo() to create a module.

Deprecated:
since 2.6
See also
testing_module_generator::create_instance()
Parameters
integer$courseid
array$optionssection, visible
Return values
integer::$cminstance id

◆ prepare_moduleinfo_record()

testing_module_generator::prepare_moduleinfo_record (   $record,
  $options 
)
protectedinherited

Merges together arguments $record and $options and fills default module fields that are shared by all module types.

Parameters
object | array$recordfields (different from defaults) for this module
null | array$optionsfor backward-compatibility this may include fields from course_modules table. They are merged into $record
Exceptions
coding_exceptionif $record->course is not specified

◆ reset()

testing_module_generator::reset ( )
inherited

To be called from data reset code only, do not use in tests.

Return values
void

Reimplemented from component_generator_base.

Reimplemented in mod_book_generator, mod_chat_generator, mod_data_generator, mod_forum_generator, mod_glossary_generator, mod_lesson_generator, mod_survey_generator, and mod_wiki_generator.

◆ set_user()

component_generator_base::set_user ( ?stdClass  $user = null)
protectedinherited

Set the current user during data generation.

This should be avoided wherever possible, but in some situations underlying code will insert data as the current user.

Parameters
stdClass$user

◆ submit_responses()

mod_quiz_generator::submit_responses (   $attemptid,
array  $responses,
  $checkbutton,
  $finishattempt 
)

Submit responses to a quiz attempt.

To be realistic, you should ensure that $USER is set to the user whose attempt it is before calling this.

Parameters
int$attemptidthe id of the attempt which is being
array$responsesarray responses to submit. See description on core_question_generator::get_simulated_post_data_for_questions_in_usage().
bool$checkbuttonif simulate a click on the check button for each question, else simulate save. This should only be used with behaviours that have a check button.
bool$finishattemptif true, the attempt will be submitted.

The documentation for this class was generated from the following file: