77 lines
2.5 KiB
Java
77 lines
2.5 KiB
Java
package com.ruoyi.lsfx.controller;
|
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.lsfx.client.CreditParseClient;
|
|
import com.ruoyi.lsfx.domain.response.CreditParseResponse;
|
|
import com.ruoyi.lsfx.exception.LsfxApiException;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
import org.mockito.InjectMocks;
|
|
import org.mockito.Mock;
|
|
import org.mockito.junit.jupiter.MockitoExtension;
|
|
import org.springframework.mock.web.MockMultipartFile;
|
|
|
|
import java.io.File;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertSame;
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
import static org.mockito.ArgumentMatchers.anyString;
|
|
import static org.mockito.ArgumentMatchers.eq;
|
|
import static org.mockito.Mockito.when;
|
|
|
|
@ExtendWith(MockitoExtension.class)
|
|
class CreditParseControllerTest {
|
|
|
|
@Mock
|
|
private CreditParseClient client;
|
|
|
|
@InjectMocks
|
|
private CreditParseController controller;
|
|
|
|
@Test
|
|
void parse_shouldRejectEmptyFile() {
|
|
AjaxResult result = controller.parse(null, null, null);
|
|
assertEquals(500, result.get("code"));
|
|
}
|
|
|
|
@Test
|
|
void parse_shouldRejectNonHtmlFile() {
|
|
MockMultipartFile file = new MockMultipartFile(
|
|
"file", "credit.pdf", "application/pdf", "x".getBytes(StandardCharsets.UTF_8)
|
|
);
|
|
AjaxResult result = controller.parse(file, null, null);
|
|
assertEquals(500, result.get("code"));
|
|
}
|
|
|
|
@Test
|
|
void shouldUseDefaultModelAndTypeWhenMissing() {
|
|
MockMultipartFile file = new MockMultipartFile(
|
|
"file", "credit.html", "text/html", "<html/>".getBytes(StandardCharsets.UTF_8)
|
|
);
|
|
CreditParseResponse response = new CreditParseResponse();
|
|
response.setStatusCode("0");
|
|
|
|
when(client.parse(eq("LXCUSTALL"), eq("PERSON"), any(File.class))).thenReturn(response);
|
|
|
|
AjaxResult result = controller.parse(file, null, null);
|
|
|
|
assertEquals(200, result.get("code"));
|
|
assertSame(response, result.get("data"));
|
|
}
|
|
|
|
@Test
|
|
void shouldReturnAjaxErrorWhenClientThrows() {
|
|
MockMultipartFile file = new MockMultipartFile(
|
|
"file", "credit.html", "text/html", "<html/>".getBytes(StandardCharsets.UTF_8)
|
|
);
|
|
when(client.parse(anyString(), anyString(), any(File.class)))
|
|
.thenThrow(new LsfxApiException("超时"));
|
|
|
|
AjaxResult result = controller.parse(file, null, null);
|
|
|
|
assertEquals(500, result.get("code"));
|
|
}
|
|
}
|