You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.5 KiB
Java
37 lines
1.5 KiB
Java
package com.sztzjy.linkCommerce.controller.schooladmin;
|
|
|
|
import com.sztzjy.linkCommerce.service.SchoolProductConfigService;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
class SchoolAdminControllerTest {
|
|
|
|
@Test
|
|
void exposesDedicatedStudentImportEndpoint() {
|
|
boolean exists = Arrays.stream(SchoolAdminController.class.getDeclaredMethods())
|
|
.anyMatch(method -> method.getName().equals("importStudents")
|
|
&& method.isAnnotationPresent(PostMapping.class)
|
|
&& Arrays.asList(method.getAnnotation(PostMapping.class).value()).contains("/students/import"));
|
|
|
|
assertTrue(exists, "School admin student import must use /api/school-admin/students/import");
|
|
}
|
|
|
|
@Test
|
|
void administrativeOrganizationGuardDelegatesToSchoolConfiguration() {
|
|
SchoolAdminController controller = new SchoolAdminController();
|
|
SchoolProductConfigService configService = mock(SchoolProductConfigService.class);
|
|
ReflectionTestUtils.setField(controller, "schoolProductConfigService", configService);
|
|
|
|
ReflectionTestUtils.invokeMethod(controller, "requireAdministrativeOrganization", "school-zj");
|
|
|
|
verify(configService).requireAdminClassEnabled("school-zj");
|
|
}
|
|
}
|