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.

70 lines
2.8 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.FeatureConversionStepThreeValidationRequest;
import com.sztzjy.linkCommerce.entity.dto.FeatureConversionStepThreeValidationResult;
import com.sztzjy.linkCommerce.entity.dto.FeatureConversionStepTwoValidationRequest;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
class FeatureConversionStepThreeServiceImplTest {
private final FeatureConversionStepThreeServiceImpl service = new FeatureConversionStepThreeServiceImpl();
@Test
void acceptsPriorityRowsSynchronizedWithRiceRows() {
FeatureConversionStepThreeValidationResult result = service.validate(request(), student());
assertTrue(result.isValid());
}
@Test
void rejectsPriorityNameNotSynchronizedWithRiceRows() {
FeatureConversionStepThreeValidationRequest request = request();
request.getRows().get(0).setName("被篡改的功能名称");
assertThrows(ServiceException.class, () -> service.validate(request, student()));
}
@Test
void rejectsBlankPriorityReason() {
FeatureConversionStepThreeValidationRequest request = request();
request.getRows().get(0).setReason(" ");
assertThrows(ServiceException.class, () -> service.validate(request, student()));
}
private FeatureConversionStepThreeValidationRequest request() {
FeatureConversionStepThreeValidationRequest request = new FeatureConversionStepThreeValidationRequest();
List<FeatureConversionStepTwoValidationRequest.RiceScoreRow> scoreRows = new ArrayList<>();
List<FeatureConversionStepThreeValidationRequest.PriorityRow> rows = new ArrayList<>();
for (int index = 0; index < 8; index++) {
String name = "功能定义" + (index + 1);
FeatureConversionStepTwoValidationRequest.RiceScoreRow scoreRow = new FeatureConversionStepTwoValidationRequest.RiceScoreRow();
scoreRow.setName(name);
scoreRows.add(scoreRow);
FeatureConversionStepThreeValidationRequest.PriorityRow row = new FeatureConversionStepThreeValidationRequest.PriorityRow();
row.setName(name);
row.setPriority(index == 0 ? "P0" : "P1");
row.setReason("结合 RICE 评分确定开发优先级");
rows.add(row);
}
request.setScoreRows(scoreRows);
request.setRows(rows);
return request;
}
private JwtUser student() {
JwtUser user = new JwtUser();
user.setUserId("student-id");
user.setRoleId(4);
return user;
}
}