|
|
|
|
@ -362,6 +362,32 @@ class TrainingTaskServiceImplTest {
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper, never()).deleteByTeachingClassAndTaskKey(anyString(), anyString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void ownerClassTaskReadDoesNotWriteConfigurations() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
service.trainingTaskMapper = mock(TrainingTaskMapper.class);
|
|
|
|
|
service.trainingTaskClassConfigMapper = mock(TrainingTaskClassConfigMapper.class);
|
|
|
|
|
service.schoolClassMapper = mock(SchoolClassMapper.class);
|
|
|
|
|
SchoolClass schoolClass = teachingClass("class-2", "teacher-a");
|
|
|
|
|
schoolClass.setSchoolId("school-1");
|
|
|
|
|
when(service.schoolClassMapper.selectByPrimaryKey("class-2")).thenReturn(schoolClass);
|
|
|
|
|
TrainingTask defaultTask = storedTask("task-1", "new-product-survey");
|
|
|
|
|
when(service.trainingTaskMapper.selectList(null, null, null)).thenReturn(Collections.singletonList(defaultTask));
|
|
|
|
|
when(service.trainingTaskClassConfigMapper.selectListByTeachingClass("class-2", null)).thenReturn(Collections.emptyList());
|
|
|
|
|
|
|
|
|
|
JwtUser owner = new JwtUser();
|
|
|
|
|
owner.setUserId("teacher-a");
|
|
|
|
|
owner.setSchoolId("school-1");
|
|
|
|
|
|
|
|
|
|
List<TrainingTask> result = service.listForTeachingClass("class-2", false, owner);
|
|
|
|
|
|
|
|
|
|
assertEquals(1, result.size());
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper, never()).insertSelective(any());
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper, never()).updateByPrimaryKeySelective(any());
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper, never()).deleteByTeachingClass(anyString());
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper, never()).deleteByTeachingClassAndTaskKey(anyString(), anyString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void teacherCannotReadTeachingClassWhenSchoolIdIsMissing() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
@ -376,6 +402,21 @@ class TrainingTaskServiceImplTest {
|
|
|
|
|
() -> service.requireReadableTeachingClass("class-2", reader));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void teacherCannotReadTeachingClassWhenClassSchoolIdIsMissing() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
service.schoolClassMapper = mock(SchoolClassMapper.class);
|
|
|
|
|
SchoolClass schoolClass = teachingClass("class-2", "teacher-a");
|
|
|
|
|
when(service.schoolClassMapper.selectByPrimaryKey("class-2")).thenReturn(schoolClass);
|
|
|
|
|
|
|
|
|
|
JwtUser reader = new JwtUser();
|
|
|
|
|
reader.setUserId("teacher-b");
|
|
|
|
|
reader.setSchoolId("school-1");
|
|
|
|
|
|
|
|
|
|
assertThrows(IllegalArgumentException.class,
|
|
|
|
|
() -> service.requireReadableTeachingClass("class-2", reader));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void restoreClassTaskDefaultDeletesOnlySelectedClassTaskCopy() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
|