/**
  * creates a user and enroles him into the given course as teacher or student
  * @param advanced_testcase $tc
  * @param unknown $course
  * @param string $is_teacher
  * @param stdClass $user userobject to enrol.
  * @return stdClass
  */
 public static function create_user_and_enrol(advanced_testcase $tc, $course, $is_teacher = false, $user = NULL)
 {
     $user = $tc->getDataGenerator()->create_user();
     if ($is_teacher) {
         if (empty(self::$teacher_role)) {
             global $DB;
             // enrole teacher and student
             self::$teacher_role = $DB->get_record('role', array('shortname' => 'editingteacher'));
         }
         $enroled = $tc->getDataGenerator()->enrol_user($user->id, $course->id, self::$teacher_role->id);
     } else {
         $enroled = $tc->getDataGenerator()->enrol_user($user->id, $course->id);
     }
     $tc->assertTrue($enroled, 'trying to enrol already enroled user');
     return $user;
 }