|
|
|
|
@ -22,12 +22,14 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
|
|
|
import static org.mockito.ArgumentMatchers.anyString;
|
|
|
|
|
import static org.mockito.ArgumentMatchers.isNull;
|
|
|
|
|
import static org.mockito.ArgumentMatchers.startsWith;
|
|
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
|
|
import static org.mockito.Mockito.never;
|
|
|
|
|
import static org.mockito.Mockito.times;
|
|
|
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
|
import static org.mockito.Mockito.verifyNoInteractions;
|
|
|
|
|
import static org.mockito.Mockito.when;
|
|
|
|
|
|
|
|
|
|
class TrainingTaskServiceImplTest {
|
|
|
|
|
@ -302,6 +304,45 @@ class TrainingTaskServiceImplTest {
|
|
|
|
|
assertThrows(IllegalArgumentException.class, () -> service.saveClassTask("class-2", "new-product-survey", task, "teacher-b"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void restoreClassTaskDefaultDeletesOnlySelectedClassTaskCopy() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
service.trainingTaskClassConfigMapper = mock(TrainingTaskClassConfigMapper.class);
|
|
|
|
|
service.schoolClassMapper = mock(SchoolClassMapper.class);
|
|
|
|
|
when(service.schoolClassMapper.selectByPrimaryKey("class-1")).thenReturn(teachingClass("class-1", "teacher-1"));
|
|
|
|
|
|
|
|
|
|
service.restoreClassTaskDefault("class-1", "new-product-survey", "teacher-1");
|
|
|
|
|
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper)
|
|
|
|
|
.deleteByTeachingClassAndTaskKey("class-1", "new-product-survey");
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper, never()).deleteByTeachingClass(anyString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void restoreClassTasksDefaultsDeletesOnlySelectedClassCopies() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
service.trainingTaskClassConfigMapper = mock(TrainingTaskClassConfigMapper.class);
|
|
|
|
|
service.schoolClassMapper = mock(SchoolClassMapper.class);
|
|
|
|
|
when(service.schoolClassMapper.selectByPrimaryKey("class-1")).thenReturn(teachingClass("class-1", "teacher-1"));
|
|
|
|
|
|
|
|
|
|
service.restoreClassTasksDefaults("class-1", "teacher-1");
|
|
|
|
|
|
|
|
|
|
verify(service.trainingTaskClassConfigMapper).deleteByTeachingClass("class-1");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void teacherCannotRestoreAnotherTeachersClass() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
service.trainingTaskClassConfigMapper = mock(TrainingTaskClassConfigMapper.class);
|
|
|
|
|
service.schoolClassMapper = mock(SchoolClassMapper.class);
|
|
|
|
|
when(service.schoolClassMapper.selectByPrimaryKey("class-2")).thenReturn(teachingClass("class-2", "teacher-a"));
|
|
|
|
|
|
|
|
|
|
assertThrows(IllegalArgumentException.class,
|
|
|
|
|
() -> service.restoreClassTasksDefaults("class-2", "teacher-b"));
|
|
|
|
|
|
|
|
|
|
verifyNoInteractions(service.trainingTaskClassConfigMapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void saveClassTaskInsertsNewOverrideWhenNoneExists() {
|
|
|
|
|
TrainingTaskServiceImpl service = new TrainingTaskServiceImpl();
|
|
|
|
|
@ -430,6 +471,14 @@ class TrainingTaskServiceImplTest {
|
|
|
|
|
return task;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private SchoolClass teachingClass(String classId, String createdBy) {
|
|
|
|
|
SchoolClass schoolClass = new SchoolClass();
|
|
|
|
|
schoolClass.setSchoolClassId(classId);
|
|
|
|
|
schoolClass.setClassType("TEACHING");
|
|
|
|
|
schoolClass.setCreatedBy(createdBy);
|
|
|
|
|
return schoolClass;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private TrainingTaskClassConfig overrideTask(String id, String teachingClassId, String taskKey) {
|
|
|
|
|
TrainingTaskClassConfig config = new TrainingTaskClassConfig();
|
|
|
|
|
config.setId(id);
|
|
|
|
|
|