| 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 | 
            }
  |