diff --git a/tests/generator/lib.php b/tests/generator/lib.php new file mode 100644 index 0000000..4c1d7cb --- /dev/null +++ b/tests/generator/lib.php @@ -0,0 +1,61 @@ +. + +/** + * mod_attendance data generator + * + * @package mod_attendance + * @category test + * @copyright 2013 Davo Smith, Synergy Learning + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + + +class mod_attendance_generator extends testing_module_generator { + + /** + * Create new attendance module instance + * @param array|stdClass $record + * @param array $options + * @return stdClass activity record with extra cmid field + */ + public function create_instance($record = null, array $options = null) { + global $CFG; + require_once($CFG->dirroot.'/mod/attendance/lib.php'); + + $this->instancecount++; + $i = $this->instancecount; + + $record = (object)(array)$record; + $options = (array)$options; + + if (empty($record->course)) { + throw new coding_exception('module generator requires $record->course'); + } + if (!isset($record->name)) { + $record->name = get_string('pluginname', 'attendance').' '.$i; + } + if (!isset($record->grade)) { + $record->grade = 100; + } + + $record->coursemodule = $this->precreate_course_module($record->course, $options); + $id = attendance_add_instance($record, null); + return $this->post_add_instance($id, $record->coursemodule); + } +}