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.

36 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.StudentTrainingAnswer;
import com.sztzjy.linkCommerce.entity.dto.BusinessFeasibilityStepThreeValidationRequest;
import com.sztzjy.linkCommerce.service.StudentTrainingAnswerService;
import org.junit.jupiter.api.Test;
import org.springframework.test.util.ReflectionTestUtils;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
class BusinessFeasibilityStepThreeServiceImplTest {
@Test
void validatesUploadedReportAfterFirstTwoSteps() {
BusinessFeasibilityStepThreeValidationRequest request = request("/profile/upload/feasibility-report.docx", "feasibility-report.docx");
assertTrue(serviceWithFirstTwoSteps().validate(request, student()).isValid());
}
@Test
void rejectsUnsupportedReportAndMissingPrerequisite() {
assertThrows(ServiceException.class, () -> serviceWithFirstTwoSteps().validate(request("/profile/upload/report.zip", "report.zip"), student()));
BusinessFeasibilityStepThreeServiceImpl service = new BusinessFeasibilityStepThreeServiceImpl(); StudentTrainingAnswerService answers = mock(StudentTrainingAnswerService.class); when(answers.get(anyString(), any(), any(JwtUser.class))).thenReturn(new StudentTrainingAnswer()); ReflectionTestUtils.setField(service, "studentTrainingAnswerService", answers);
assertThrows(ServiceException.class, () -> service.validate(request("/profile/upload/report.pdf", "report.pdf"), student()));
}
private BusinessFeasibilityStepThreeServiceImpl serviceWithFirstTwoSteps() { BusinessFeasibilityStepThreeServiceImpl service = new BusinessFeasibilityStepThreeServiceImpl(); StudentTrainingAnswerService answers = mock(StudentTrainingAnswerService.class); StudentTrainingAnswer answer = new StudentTrainingAnswer(); answer.setStep1Answer("{}"); answer.setStep2Answer("{}"); when(answers.get(anyString(), any(), any(JwtUser.class))).thenReturn(answer); ReflectionTestUtils.setField(service, "studentTrainingAnswerService", answers); return service; }
private BusinessFeasibilityStepThreeValidationRequest request(String url, String name) { BusinessFeasibilityStepThreeValidationRequest request = new BusinessFeasibilityStepThreeValidationRequest(); request.setReportUrl(url); request.setReportName(name); return request; }
private JwtUser student() { JwtUser user = new JwtUser(); user.setUserId("stu-1"); user.setRoleId(4); return user; }
}