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.

41 lines
2.1 KiB
Java

package com.sztzjy.linkCommerce.service.impl;
import com.sztzjy.linkCommerce.config.exception.handler.ServiceException;
import com.sztzjy.linkCommerce.config.security.JwtUser;
import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepOneValidationRequest;
import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepOneValidationResult;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
class IndustryDemandAnalysisStepOneServiceImplTest {
@Test
void validateAcceptsAllFourPestDimensions() {
IndustryDemandAnalysisStepOneServiceImpl service = new IndustryDemandAnalysisStepOneServiceImpl();
IndustryDemandAnalysisStepOneValidationResult result = service.validate(completedRequest(), student());
assertTrue(result.isValid());
}
@Test
void validateRejectsMissingDimensionAndNonStudent() {
IndustryDemandAnalysisStepOneServiceImpl service = new IndustryDemandAnalysisStepOneServiceImpl();
IndustryDemandAnalysisStepOneValidationRequest missingTechnology = completedRequest();
missingTechnology.setTechnology(" ");
assertThrows(ServiceException.class, () -> service.validate(missingTechnology, student()));
assertThrows(ServiceException.class, () -> service.validate(completedRequest(), teacher()));
}
private IndustryDemandAnalysisStepOneValidationRequest completedRequest() {
IndustryDemandAnalysisStepOneValidationRequest request = new IndustryDemandAnalysisStepOneValidationRequest();
request.setPolitical("行业相关政策、认证和数据合规要求。");
request.setEconomic("市场规模、供应链成本与商业模式信息。");
request.setSocial("用户健康管理需求和消费趋势变化。");
request.setTechnology("设备互联、AI算法和平台能力信息。");
return request;
}
private JwtUser student() { JwtUser user = new JwtUser(); user.setUserId("stu-1"); user.setRoleId(4); return user; }
private JwtUser teacher() { JwtUser user = student(); user.setRoleId(3); return user; }
}