108 lines
5.7 KiB
Java
108 lines
5.7 KiB
Java
package com.bruce.common.enumconfig;
|
|
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
import com.baomidou.mybatisplus.extension.service.IService;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.bruce.common.controller.SysEnumController;
|
|
import com.bruce.common.domain.entity.SysEnum;
|
|
import com.bruce.common.domain.model.RequestResult;
|
|
import com.bruce.common.dto.request.SysEnumBatchSaveRequest;
|
|
import com.bruce.common.dto.request.SysEnumManageQueryRequest;
|
|
import com.bruce.common.dto.request.SysEnumQueryRequest;
|
|
import com.bruce.common.dto.request.SysEnumSaveRequest;
|
|
import com.bruce.common.dto.response.SysEnumResponse;
|
|
import com.bruce.common.mapper.SysEnumMapper;
|
|
import com.bruce.common.service.ISysEnumService;
|
|
import com.bruce.common.service.impl.SysEnumServiceImpl;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.lang.reflect.Method;
|
|
import java.util.List;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
class SysEnumComponentStructureTests {
|
|
|
|
@Test
|
|
void sysEnumComponentsShouldReuseMybatisPlusBaseTypes() {
|
|
assertTrue(BaseMapper.class.isAssignableFrom(SysEnumMapper.class));
|
|
assertTrue(IService.class.isAssignableFrom(ISysEnumService.class));
|
|
assertTrue(ServiceImpl.class.isAssignableFrom(SysEnumServiceImpl.class));
|
|
assertTrue(ISysEnumService.class.isAssignableFrom(SysEnumServiceImpl.class));
|
|
assertTrue(SysEnum.class.isAssignableFrom(SysEnum.class));
|
|
}
|
|
|
|
@Test
|
|
void sysEnumShouldExposeQueryMethodForCatalogAndType() throws NoSuchMethodException {
|
|
Method serviceMethod = ISysEnumService.class.getMethod("listByCatalogAndType", SysEnumQueryRequest.class);
|
|
Method controllerMethod = SysEnumController.class.getMethod("queryByCatalogAndType", SysEnumQueryRequest.class);
|
|
|
|
assertNotNull(serviceMethod);
|
|
assertNotNull(controllerMethod);
|
|
assertEquals(List.class, serviceMethod.getReturnType());
|
|
assertEquals(RequestResult.class, controllerMethod.getReturnType());
|
|
}
|
|
|
|
@Test
|
|
void sysEnumShouldExposeSaveOrUpdateAndDeleteInterfaces() throws NoSuchMethodException {
|
|
Method saveOrUpdateMethod = ISysEnumService.class.getMethod("saveOrUpdate", SysEnumSaveRequest.class);
|
|
Method batchSaveMethod = ISysEnumService.class.getMethod("batchSave", SysEnumBatchSaveRequest.class);
|
|
Method controllerSaveOrUpdateMethod = SysEnumController.class.getMethod("saveOrUpdate", SysEnumSaveRequest.class);
|
|
Method controllerBatchSaveMethod = SysEnumController.class.getMethod("batchSave", SysEnumBatchSaveRequest.class);
|
|
Method deleteMethod = SysEnumController.class.getMethod("deleteById", Long.class);
|
|
Method listMethod = SysEnumController.class.getMethod("list");
|
|
|
|
assertNotNull(saveOrUpdateMethod);
|
|
assertNotNull(batchSaveMethod);
|
|
assertNotNull(controllerSaveOrUpdateMethod);
|
|
assertNotNull(controllerBatchSaveMethod);
|
|
assertNotNull(deleteMethod);
|
|
assertNotNull(listMethod);
|
|
assertEquals(boolean.class, saveOrUpdateMethod.getReturnType());
|
|
assertEquals(boolean.class, batchSaveMethod.getReturnType());
|
|
assertEquals(RequestResult.class, controllerSaveOrUpdateMethod.getReturnType());
|
|
assertEquals(RequestResult.class, controllerBatchSaveMethod.getReturnType());
|
|
assertEquals(RequestResult.class, deleteMethod.getReturnType());
|
|
assertEquals(RequestResult.class, listMethod.getReturnType());
|
|
}
|
|
|
|
@Test
|
|
void sysEnumShouldExposeManagementQueryWithoutChangingCatalogTypeQuery() throws NoSuchMethodException {
|
|
Method serviceMethod = ISysEnumService.class.getMethod("listForManagement", SysEnumManageQueryRequest.class);
|
|
Method controllerMethod = SysEnumController.class.getMethod("queryForManagement", SysEnumManageQueryRequest.class);
|
|
Method catalogTypeMethod = ISysEnumService.class.getMethod("listByCatalogAndType", SysEnumQueryRequest.class);
|
|
|
|
assertNotNull(serviceMethod);
|
|
assertNotNull(controllerMethod);
|
|
assertNotNull(catalogTypeMethod);
|
|
assertEquals(List.class, serviceMethod.getReturnType());
|
|
assertEquals(RequestResult.class, controllerMethod.getReturnType());
|
|
assertEquals(List.class, catalogTypeMethod.getReturnType());
|
|
assertTrue(serviceMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
|
|
}
|
|
|
|
@Test
|
|
void sysEnumControllerShouldReturnDtoContracts() throws NoSuchMethodException {
|
|
Method listMethod = SysEnumController.class.getMethod("list");
|
|
Method manageQueryMethod = SysEnumController.class.getMethod("queryForManagement", SysEnumManageQueryRequest.class);
|
|
Method detailMethod = SysEnumController.class.getMethod("getById", Long.class);
|
|
Method serviceListMethod = ISysEnumService.class.getMethod("listResponses");
|
|
Method responseFactory = SysEnumResponse.class.getMethod("fromEntity", SysEnum.class);
|
|
|
|
assertTrue(serviceListMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
|
|
assertTrue(listMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
|
|
assertTrue(manageQueryMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
|
|
assertTrue(detailMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
|
|
assertEquals(SysEnumResponse.class, responseFactory.getReturnType());
|
|
}
|
|
|
|
@Test
|
|
void sysEnumShouldProvideManualInitTestEntry() throws NoSuchMethodException {
|
|
Method initMethod = SysEnumDataInitTests.class.getMethod("initDefaultEnums");
|
|
|
|
assertNotNull(initMethod);
|
|
}
|
|
}
|