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