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.TargetUserProfileStepOneValidationRequest; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; class TargetUserProfileStepOneServiceImplTest { @Test void validatesStudentRfmExcelWithPreview() { assertTrue(new TargetUserProfileStepOneServiceImpl().validate(request("rfm.xlsx", 20, 6), student()).isValid()); } @Test void rejectsNonExcelFileAndUnpreviewableWorkbook() { TargetUserProfileStepOneServiceImpl service = new TargetUserProfileStepOneServiceImpl(); assertThrows(ServiceException.class, () -> service.validate(request("rfm.pdf", 2, 6), student())); assertThrows(ServiceException.class, () -> service.validate(request("rfm.xlsx", 0, 0), student())); } private TargetUserProfileStepOneValidationRequest request(String excelName, int rows, int columns) { TargetUserProfileStepOneValidationRequest request = new TargetUserProfileStepOneValidationRequest(); request.setExcelName(excelName); request.setExcelUrl("/profile/" + excelName); request.setPreviewRowCount(rows); request.setPreviewColumnCount(columns); return request; } private JwtUser student() { JwtUser user = new JwtUser(); user.setUserId("stu-1"); user.setRoleId(4); return user; } }