|
|
|
|
@ -124,15 +124,18 @@ class UserControllerTeacherAdminTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void ordinaryTeacherCannotAddAdminClass() {
|
|
|
|
|
void ordinaryTeacherCanAddAdminClassWithinOwnSchool() {
|
|
|
|
|
UserController controller = controllerWithCommonMocks();
|
|
|
|
|
when(controller.userinfoMapper.selectByPrimaryKey("teacher-1")).thenReturn(teacher("teacher-1", false));
|
|
|
|
|
when(controller.schoolClassMapper.selectByExample(any())).thenReturn(Collections.emptyList());
|
|
|
|
|
when(controller.schoolClassMapper.insert(any(SchoolClass.class))).thenReturn(1);
|
|
|
|
|
when(controller.pinyin4jUtil.convertToPinyin(any())).thenReturn("py");
|
|
|
|
|
|
|
|
|
|
ResultEntity result = controller.addSchoolClass("school-1", "faculty-1", "major-1", "admin-class",
|
|
|
|
|
"teacher-1", "ADMIN", null);
|
|
|
|
|
|
|
|
|
|
assertEquals(HttpStatus.BAD_REQUEST, result.getStatusCode());
|
|
|
|
|
verify(controller.schoolClassMapper, never()).insert(any(SchoolClass.class));
|
|
|
|
|
assertEquals(HttpStatus.OK, result.getStatusCode());
|
|
|
|
|
verify(controller.schoolClassMapper).insert(argThat(schoolClass -> "ADMIN".equals(schoolClass.getClassType())));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@ -314,7 +317,7 @@ class UserControllerTeacherAdminTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void ordinaryTeacherCannotDeleteOwnAdminClass() {
|
|
|
|
|
void ordinaryTeacherCanDeleteOwnLocalAdminClass() {
|
|
|
|
|
UserController controller = controllerWithCommonMocks();
|
|
|
|
|
Userinfo teacher = teacher("teacher-1", false);
|
|
|
|
|
SchoolClass existing = classCreatedBy("teacher-1");
|
|
|
|
|
@ -322,11 +325,13 @@ class UserControllerTeacherAdminTest {
|
|
|
|
|
existing.setDataSource("LOCAL");
|
|
|
|
|
when(controller.userinfoMapper.selectByPrimaryKey("teacher-1")).thenReturn(teacher);
|
|
|
|
|
when(controller.schoolClassMapper.selectByPrimaryKey("class-1")).thenReturn(existing);
|
|
|
|
|
when(controller.userinfoMapper.selectByExample(any())).thenReturn(Collections.emptyList());
|
|
|
|
|
when(controller.schoolClassMapper.deleteByPrimaryKey("class-1")).thenReturn(1);
|
|
|
|
|
|
|
|
|
|
ResultEntity result = controller.deleteSchoolClass("class-1", "teacher-1");
|
|
|
|
|
|
|
|
|
|
assertEquals(HttpStatus.BAD_REQUEST, result.getStatusCode());
|
|
|
|
|
verify(controller.schoolClassMapper, never()).deleteByPrimaryKey("class-1");
|
|
|
|
|
assertEquals(HttpStatus.OK, result.getStatusCode());
|
|
|
|
|
verify(controller.schoolClassMapper).deleteByPrimaryKey("class-1");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@ -406,7 +411,7 @@ class UserControllerTeacherAdminTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void ordinaryTeacherCannotUpdateOwnAdminClass() {
|
|
|
|
|
void ordinaryTeacherCanUpdateOwnLocalAdminClass() {
|
|
|
|
|
UserController controller = controllerWithCommonMocks();
|
|
|
|
|
Userinfo teacher = teacher("teacher-1", false);
|
|
|
|
|
SchoolClass existing = classCreatedBy("teacher-1");
|
|
|
|
|
@ -417,11 +422,12 @@ class UserControllerTeacherAdminTest {
|
|
|
|
|
update.setClassName("new-admin-class");
|
|
|
|
|
when(controller.userinfoMapper.selectByPrimaryKey("teacher-1")).thenReturn(teacher);
|
|
|
|
|
when(controller.schoolClassMapper.selectByPrimaryKey("class-1")).thenReturn(existing);
|
|
|
|
|
when(controller.schoolClassMapper.updateByPrimaryKeySelective(any(SchoolClass.class))).thenReturn(1);
|
|
|
|
|
|
|
|
|
|
ResultEntity result = controller.updateSchoolClass(update, "teacher-1");
|
|
|
|
|
|
|
|
|
|
assertEquals(HttpStatus.BAD_REQUEST, result.getStatusCode());
|
|
|
|
|
verify(controller.schoolClassMapper, never()).updateByPrimaryKeySelective(any(SchoolClass.class));
|
|
|
|
|
assertEquals(HttpStatus.OK, result.getStatusCode());
|
|
|
|
|
verify(controller.schoolClassMapper).updateByPrimaryKeySelective(update);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@ -902,7 +908,7 @@ class UserControllerTeacherAdminTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void importTeacherStudentRowsRejectsClassNotCreatedByTeacher() {
|
|
|
|
|
void importTeacherStudentRowsAllowsAdminClassFromSameSchool() {
|
|
|
|
|
UserController controller = controllerWithCommonMocks();
|
|
|
|
|
SchoolClass adminClass = new SchoolClass();
|
|
|
|
|
adminClass.setSchoolClassId("admin-1");
|
|
|
|
|
@ -916,13 +922,14 @@ class UserControllerTeacherAdminTest {
|
|
|
|
|
when(controller.schoolMajorMapper.selectByExample(any())).thenReturn(Collections.singletonList(major("major-1", "faculty-1", "专业")));
|
|
|
|
|
when(controller.schoolClassMapper.selectByExample(any())).thenReturn(Collections.singletonList(adminClass));
|
|
|
|
|
when(controller.userInfoService.existsByUserName("20260001")).thenReturn(false);
|
|
|
|
|
when(controller.userinfoMapper.insertSelective(any(Userinfo.class))).thenReturn(1);
|
|
|
|
|
|
|
|
|
|
ResultEntity result = controller.importTeacherStudentRows(
|
|
|
|
|
Collections.singletonList(studentAccountRow("张三", "20260001", "男", "院系", "专业", "行政一班")),
|
|
|
|
|
"teacher-1");
|
|
|
|
|
|
|
|
|
|
assertEquals(HttpStatus.BAD_REQUEST, result.getStatusCode());
|
|
|
|
|
verify(controller.userinfoMapper, never()).insertSelective(any(Userinfo.class));
|
|
|
|
|
assertEquals(HttpStatus.OK, result.getStatusCode());
|
|
|
|
|
verify(controller.userinfoMapper).insertSelective(argThat(student -> "admin-1".equals(student.getSchoolClassId())));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private UserController controllerWithCommonMocks() {
|
|
|
|
|
|