|
@@ -0,0 +1,113 @@
|
|
|
|
|
+package com.sckw.system.service;
|
|
|
|
|
+
|
|
|
|
|
+import com.sckw.core.exception.BusinessException;
|
|
|
|
|
+import com.sckw.system.model.KwsEntType;
|
|
|
|
|
+import com.sckw.system.model.KwsEnterprise;
|
|
|
|
|
+import com.sckw.system.model.vo.req.EnterprisePageQueryReqVo;
|
|
|
|
|
+import com.sckw.system.model.vo.res.EntInfo;
|
|
|
|
|
+import com.sckw.system.repository.KwsEntTypeRepository;
|
|
|
|
|
+import com.sckw.system.repository.KwsEnterpriseRepository;
|
|
|
|
|
+import org.junit.Test;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Set;
|
|
|
|
|
+
|
|
|
|
|
+import static org.junit.Assert.assertEquals;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 企业信息查询服务测试。
|
|
|
|
|
+ */
|
|
|
|
|
+public class KwsEnterpriseServiceTest {
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 验证按企业类型查询时不依赖当前登录企业ID,并支持企业名称模糊查询参数透传。
|
|
|
|
|
+ */
|
|
|
|
|
+ @Test
|
|
|
|
|
+ public void queryEnterpriseByTypeShouldReturnIdAndNameWithoutLoginEntFilter() {
|
|
|
|
|
+ FakeKwsEntTypeRepository entTypeRepository = new FakeKwsEntTypeRepository(List.of(
|
|
|
|
|
+ buildEntType(1001L, 1),
|
|
|
|
|
+ buildEntType(1002L, 1),
|
|
|
|
|
+ buildEntType(null, 1)
|
|
|
|
|
+ ));
|
|
|
|
|
+ FakeKwsEnterpriseRepository enterpriseRepository = new FakeKwsEnterpriseRepository(List.of(
|
|
|
|
|
+ buildEnterprise(1001L, "山西供应商"),
|
|
|
|
|
+ buildEnterprise(1002L, "陕西供应商")
|
|
|
|
|
+ ));
|
|
|
|
|
+ KwsEnterpriseService service = new KwsEnterpriseService(entTypeRepository, enterpriseRepository);
|
|
|
|
|
+
|
|
|
|
|
+ EnterprisePageQueryReqVo req = new EnterprisePageQueryReqVo();
|
|
|
|
|
+ req.setEnterpriseType(1);
|
|
|
|
|
+ req.setEntName("供应商");
|
|
|
|
|
+
|
|
|
|
|
+ List<EntInfo> result = service.queryEnterpriseByType(req);
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(1, entTypeRepository.lastEnterpriseType.intValue());
|
|
|
|
|
+ assertEquals("供应商", enterpriseRepository.lastEntName);
|
|
|
|
|
+ assertEquals(Set.of(1001L, 1002L), enterpriseRepository.lastEntIds);
|
|
|
|
|
+ assertEquals(2, result.size());
|
|
|
|
|
+ assertEquals("1001", result.get(0).getEntId());
|
|
|
|
|
+ assertEquals("山西供应商", result.get(0).getEntName());
|
|
|
|
|
+ assertEquals("1002", result.get(1).getEntId());
|
|
|
|
|
+ assertEquals("陕西供应商", result.get(1).getEntName());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 验证企业类型为空时抛出业务异常,避免无条件全量查询。
|
|
|
|
|
+ */
|
|
|
|
|
+ @Test(expected = BusinessException.class)
|
|
|
|
|
+ public void queryEnterpriseByTypeShouldRejectEmptyEnterpriseType() {
|
|
|
|
|
+ KwsEnterpriseService service = new KwsEnterpriseService(
|
|
|
|
|
+ new FakeKwsEntTypeRepository(List.of()),
|
|
|
|
|
+ new FakeKwsEnterpriseRepository(List.of())
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ service.queryEnterpriseByType(new EnterprisePageQueryReqVo());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static KwsEntType buildEntType(Long entId, Integer type) {
|
|
|
|
|
+ KwsEntType entType = new KwsEntType();
|
|
|
|
|
+ entType.setEntId(entId);
|
|
|
|
|
+ entType.setType(type);
|
|
|
|
|
+ return entType;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static KwsEnterprise buildEnterprise(Long id, String firmName) {
|
|
|
|
|
+ KwsEnterprise enterprise = new KwsEnterprise();
|
|
|
|
|
+ enterprise.setId(id);
|
|
|
|
|
+ enterprise.setFirmName(firmName);
|
|
|
|
|
+ return enterprise;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static class FakeKwsEntTypeRepository extends KwsEntTypeRepository {
|
|
|
|
|
+ private final List<KwsEntType> entTypes;
|
|
|
|
|
+ private Integer lastEnterpriseType;
|
|
|
|
|
+
|
|
|
|
|
+ private FakeKwsEntTypeRepository(List<KwsEntType> entTypes) {
|
|
|
|
|
+ this.entTypes = new ArrayList<>(entTypes);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<KwsEntType> queryByType(Integer entType) {
|
|
|
|
|
+ lastEnterpriseType = entType;
|
|
|
|
|
+ return entTypes;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static class FakeKwsEnterpriseRepository extends KwsEnterpriseRepository {
|
|
|
|
|
+ private final List<KwsEnterprise> enterprises;
|
|
|
|
|
+ private Set<Long> lastEntIds;
|
|
|
|
|
+ private String lastEntName;
|
|
|
|
|
+
|
|
|
|
|
+ private FakeKwsEnterpriseRepository(List<KwsEnterprise> enterprises) {
|
|
|
|
|
+ this.enterprises = new ArrayList<>(enterprises);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<KwsEnterprise> queryByEntIds(Set<Long> entIds, String entName) {
|
|
|
|
|
+ lastEntIds = entIds;
|
|
|
|
|
+ lastEntName = entName;
|
|
|
|
|
+ return enterprises;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|