/** * Test set up. * * This is executed before running any test in this file. */ public function setUp() { global $DB; $this->resetAfterTest(); // Create a course we are going to add a data module to. $this->course = $this->getDataGenerator()->create_course(); $courseid = $this->course->id; $roles = $DB->get_records_menu('role', array(), '', 'shortname,id'); $editingteacherrolename = \mod_dataform\helper\testing::get_role_shortname('editingteacher'); $teacherrolename = \mod_dataform\helper\testing::get_role_shortname('teacher'); $studentrolename = \mod_dataform\helper\testing::get_role_shortname('student'); // Teacher. $user = $this->getDataGenerator()->create_user(array('username' => 'teacher')); $this->getDataGenerator()->enrol_user($user->id, $courseid, $roles[$editingteacherrolename]); $this->teacher = $user; // Assistant. $user = $this->getDataGenerator()->create_user(array('username' => 'assistant')); $this->getDataGenerator()->enrol_user($user->id, $courseid, $roles[$teacherrolename]); $this->assistant = $user; // Student. $user = $this->getDataGenerator()->create_user(array('username' => 'student')); $this->getDataGenerator()->enrol_user($user->id, $courseid, $roles[$studentrolename]); $this->student = $user; // Guest. $user = $DB->get_record('user', array('username' => 'guest')); $this->guest = $user; }
/** * Test set up. * * This is executed before running any test in this file. */ public function setUp() { global $DB; $this->resetAfterTest(); // Reset dataform local cache. \mod_dataform_instance_store::unregister(); // Create a course we are going to add a data module to. $this->course = $this->getDataGenerator()->create_course(); $courseid = $this->course->id; $roles = $DB->get_records_menu('role', array(), '', 'shortname,id'); // Teacher. $user = $this->getDataGenerator()->create_user(array('username' => 'teacher')); $roleshortname = \mod_dataform\helper\testing::get_role_shortname('editingteacher'); $this->getDataGenerator()->enrol_user($user->id, $courseid, $roles[$roleshortname]); $this->teacher = $user; // Student 1. $user = $this->getDataGenerator()->create_user(array('username' => 'student1')); $roleshortname = \mod_dataform\helper\testing::get_role_shortname('student'); $this->getDataGenerator()->enrol_user($user->id, $courseid, $roles[$roleshortname]); $this->student1 = $user; // Student 2. $user = $this->getDataGenerator()->create_user(array('username' => 'student2')); $roleshortname = \mod_dataform\helper\testing::get_role_shortname('student'); $this->getDataGenerator()->enrol_user($user->id, $courseid, $roles[$roleshortname]); $this->student2 = $user; }
/** * Resets (truncates) all dataform tables to remove any records and reset sequences. * This set of steps is essential for any standalone scenario that adds entries with content * since such a scenario has to refer to input elements by the name field_{fieldid}_{entryid} * (or field_{fieldid}_-1 for a new entry) and the ids have to persist between runs. * * @Given /^a fresh site for dataform scenario$/ * @return array */ public function start_afresh_steps() { global $DB; // Dataform module id. $moduleid = $DB->get_field('modules', 'id', array('name' => 'dataform')); // CM ids. if ($cmids = $DB->get_records('course_modules', array('module' => $moduleid), '', 'id,id AS cmid')) { // Delete properly any existing dataform instances. foreach ($cmids as $cmid) { course_delete_module($cmid); } } // Clean up tables. $tables = array('dataform', 'dataform_contents', 'dataform_entries', 'dataform_fields', 'dataform_filters', 'dataform_views'); $prefix = $DB->get_prefix(); foreach ($tables as $table) { $DB->execute("TRUNCATE TABLE {$prefix}{$table}"); } // Clean up instance store cache. \mod_dataform_instance_store::unregister(); $steps = array(); // Add a course. $data = array('| fullname | shortname | category |', '| Course 1 | C1 | 0 |'); $table = new TableNode(implode("\n", $data)); $steps[] = new Given('the following "courses" exist:', $table); // Add users. $data = array('| username | firstname | lastname | email |', '| teacher1 | Teacher | 1 | teacher1@asd.com |', '| assistant1 | Assistant | 1 | assistant1@asd.com |', '| assistant2 | Assistant | 2 | assistant2@asd.com |', '| student1 | Student | 1 | student1@asd.com |', '| student2 | Student | 2 | student2@asd.com |', '| student3 | Student | 3 | student3@asd.com |'); $table = new TableNode(implode("\n", $data)); $steps[] = new Given('the following "users" exist:', $table); // Enrol users in course. $teacherrole = \mod_dataform\helper\testing::get_role_shortname('editingteacher'); $assistantrole = \mod_dataform\helper\testing::get_role_shortname('teacher'); $studentrole = \mod_dataform\helper\testing::get_role_shortname('student'); $data = array('| user | course | role |', "| teacher1 | C1 | {$teacherrole} |", "| assistant1 | C1 | {$assistantrole} |", "| assistant2 | C1 | {$assistantrole} |", "| student1 | C1 | {$studentrole} |", "| student2 | C1 | {$studentrole} |"); $table = new TableNode(implode("\n", $data)); $steps[] = new Given('the following "course enrolments" exist:', $table); // Add groups. $data = array('| name | description | course | idnumber |', '| Group 1 | Anything | C1 | G1 |', '| Group 2 | Anything | C1 | G2 |'); $table = new TableNode(implode("\n", $data)); $steps[] = new Given('the following "groups" exist:', $table); // Add group members. $data = array('| user | group |', '| student1 | G1 |', '| student2 | G2 |'); $table = new TableNode(implode("\n", $data)); $steps[] = new Given('the following "group members" exist:', $table); return $steps; }