Proyectos de Subversion Moodle

Rev

Rev 11 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 11 Rev 1441
Línea 32... Línea 32...
32
 * Unit tests for (some of) mod/feedback/lib.php.
32
 * Unit tests for (some of) mod/feedback/lib.php.
33
 *
33
 *
34
 * @copyright  2016 Stephen Bourget
34
 * @copyright  2016 Stephen Bourget
35
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
36
 */
36
 */
37
class lib_test extends \advanced_testcase {
37
final class lib_test extends \advanced_testcase {
Línea 38... Línea 38...
38
 
38
 
39
    public function test_feedback_initialise(): void {
39
    public function test_feedback_initialise(): void {
40
        $this->resetAfterTest();
40
        $this->resetAfterTest();
Línea 1161... Línea 1161...
1161
            'timeopen' => $time + 200,
1161
            'timeopen' => $time + 200,
1162
            'timeclose' => $time + 2000,
1162
            'timeclose' => $time + 2000,
1163
        );
1163
        );
1164
        $generator->create_instance($params);
1164
        $generator->create_instance($params);
1165
    }
1165
    }
-
 
1166
 
-
 
1167
    /**
-
 
1168
     * Test that if a teacher (non editing) is not part of any group in separate group mode he will not receive notification emails.
-
 
1169
     * @covers ::feedback_get_receivemail_users
-
 
1170
     */
-
 
1171
    public function test_feedback_get_receivemail_users(): void {
-
 
1172
        $this->resetAfterTest();
-
 
1173
        $generator = $this->getDataGenerator();
-
 
1174
        $course = $generator->create_course(['groupmode' => SEPARATEGROUPS, 'groupmodeforce' => 1]);
-
 
1175
        $group = $generator->create_group(['courseid' => $course->id, 'name' => 'group0']);
-
 
1176
 
-
 
1177
        $feedbackgenerator = $generator->get_plugin_generator('mod_feedback');
-
 
1178
        $feedback = $feedbackgenerator->create_instance(['course' => $course->id, 'email_notification' => true]);
-
 
1179
        $teacher = [];
-
 
1180
        $data = [
-
 
1181
            'teacher1' => 'teacher',
-
 
1182
            'teacher2' => 'teacher',
-
 
1183
            'teacher3' => 'editingteacher',
-
 
1184
            'teacher4' => 'editingteacher',
-
 
1185
        ];
-
 
1186
        foreach ($data as $username => $role) {
-
 
1187
            $teacher[$username] = $generator->create_user(['username' => $username]);
-
 
1188
            $generator->enrol_user($teacher[$username]->id, $course->id, $role);
-
 
1189
        }
-
 
1190
        $generator->create_group_member([
-
 
1191
            'groupid' => $group->id,
-
 
1192
            'userid' => $teacher['teacher1']->id,
-
 
1193
        ]);
-
 
1194
        $generator->create_group_member([
-
 
1195
            'groupid' => $group->id,
-
 
1196
            'userid' => $teacher['teacher4']->id,
-
 
1197
        ]);
-
 
1198
 
-
 
1199
        $usergroup = $group->id;
-
 
1200
        // Non editing Teachers (teacher1) in a group should receive notification emails.
-
 
1201
        // Editing teachers (teacher4), in a group should also receive notification emails.
-
 
1202
        $teachersingroup = feedback_get_receivemail_users($feedback->cmid, $usergroup);
-
 
1203
        $this->assertCount(2, $teachersingroup);
-
 
1204
        $this->assertNotEmpty($teachersingroup[$teacher['teacher1']->id]);
-
 
1205
        $this->assertNotEmpty($teachersingroup[$teacher['teacher4']->id]);
-
 
1206
        // Here we should return only the editing teachers (teacher3 and 4) who have access to all groups.
-
 
1207
        $teacherwithnogroup = feedback_get_receivemail_users($feedback->cmid);
-
 
1208
        $this->assertCount(2, $teacherwithnogroup);
-
 
1209
        $this->assertNotEmpty($teacherwithnogroup[$teacher['teacher3']->id]);
-
 
1210
        $this->assertNotEmpty($teacherwithnogroup[$teacher['teacher4']->id]);
-
 
1211
    }
1166
}
1212
}