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
36 lines
2.8 KiB
Java
|
3 weeks ago
|
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; }
|
||
|
|
}
|