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

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");
}
}