MDL-55609 testing: Add a create_and_enrol helper
authorAndrew Nicols <andrew@nicols.co.uk>
Fri, 25 May 2018 03:40:26 +0000 (11:40 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Thu, 31 May 2018 23:30:32 +0000 (07:30 +0800)
lib/testing/generator/data_generator.php

index 5dc5e4c..b52fa58 100644 (file)
@@ -1163,4 +1163,24 @@ EOD;
 
         return $event->properties();
     }
+
+    /**
+     * Create a new user, and enrol them in the specified course as the supplied role.
+     *
+     * @param   \stdClass   $course The course to enrol in
+     * @param   string      $role The role to give within the course
+     * @param   \stdClass   $userparams User parameters
+     * @return  \stdClass   The created user
+     */
+    public function create_and_enrol($course, $role = 'student', $userparams = null, $enrol = 'manual',
+            $timestart = 0, $timeend = 0, $status = null) {
+        global $DB;
+
+        $user = $this->create_user($userparams);
+        $roleid = $DB->get_field('role', 'id', ['shortname' => $role ]);
+
+        $this->enrol_user($user->id, $course->id, $roleid, $enrol, $timestart, $timeend, $status);
+
+        return $user;
+    }
 }