Files
ccdi/ccdi-lsfx/src/test/java/com/ruoyi/lsfx/controller/CreditParseControllerTest.java

77 lines
2.5 KiB
Java
Raw Normal View History

2026-03-23 15:54:50 +08:00
package com.ruoyi.lsfx.controller;
import com.ruoyi.common.core.domain.AjaxResult;
2026-03-23 16:01:46 +08:00
import com.ruoyi.lsfx.client.CreditParseClient;
import com.ruoyi.lsfx.domain.response.CreditParseResponse;
import com.ruoyi.lsfx.exception.LsfxApiException;
2026-03-23 15:54:50 +08:00
import org.junit.jupiter.api.Test;
2026-03-23 16:01:46 +08:00
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
2026-03-23 15:54:50 +08:00
import org.springframework.mock.web.MockMultipartFile;
2026-03-23 16:01:46 +08:00
import java.io.File;
2026-03-23 15:54:50 +08:00
import java.nio.charset.StandardCharsets;
import static org.junit.jupiter.api.Assertions.assertEquals;
2026-03-23 16:01:46 +08:00
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;
2026-03-23 15:54:50 +08:00
2026-03-23 16:01:46 +08:00
@ExtendWith(MockitoExtension.class)
2026-03-23 15:54:50 +08:00
class CreditParseControllerTest {
2026-03-23 16:01:46 +08:00
@Mock
private CreditParseClient client;
@InjectMocks
private CreditParseController controller;
2026-03-23 15:54:50 +08:00
@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"));
}
2026-03-23 16:01:46 +08:00
@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"));
}
2026-03-23 15:54:50 +08:00
}