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.

40 lines
1.6 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.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;
}
}