From 16dcd724f39d950eb66191c0e1b26573d5fb33b9 Mon Sep 17 00:00:00 2001 From: Davo Smith Date: Thu, 25 Jun 2015 11:53:00 +0100 Subject: [PATCH] Add generator --- tests/generator/lib.php | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 tests/generator/lib.php 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); + } +}