格式修改

This commit is contained in:
2026-08-05 10:35:07 +08:00
parent 81c9c92f5d
commit 496fc58a90
241 changed files with 5600 additions and 2088 deletions
@@ -6,10 +6,15 @@ import com.baiyue.integration.dto.ocr.WeightOcrBatchRequest;
import com.baiyue.integration.dto.ocr.WeightOcrImageResult.Status;
import com.baiyue.integration.provider.ocr.BaiduMeterClient;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.springframework.util.unit.DataSize;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import javax.imageio.ImageIO;
import java.awt.Color;
@@ -26,9 +31,14 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@DisplayName("OCR 重量批量识别功能")
@SpringJUnitConfig(classes = {WeightOcrBatchService.class, WeightOcrStoragePolicy.class,
ImageCropper.class, WeightCandidateSelector.class, WeightOcrBatchServiceTest.TestConfig.class})
class WeightOcrBatchServiceTest {
@TempDir
Path tempDirectory;
@MockBean private IntegrationProperties properties;
@MockBean private BaiduMeterClient client;
@Resource private WeightOcrBatchService service;
@Test
void completesBatchAndWritesArtifactsWithoutCallingRealProvider() throws Exception {
@@ -43,15 +53,10 @@ class WeightOcrBatchServiceTest {
}
ImageIO.write(image, "png", batchInput.resolve("weight.png").toFile());
IntegrationProperties properties = properties(inputRoot, outputRoot);
BaiduMeterClient client = mock(BaiduMeterClient.class);
when(properties.baiduOcr()).thenReturn(properties(inputRoot, outputRoot).baiduOcr());
when(client.recognize(any())).thenReturn(new BaiduMeterClient.MeterResponse(
"{\"words_result\":[]}",
List.of(new OcrCandidate("12.35", 0.98, 10, 10, 80, 30))));
ObjectMapper objectMapper = new ObjectMapper().findAndRegisterModules();
WeightOcrBatchService service = new WeightOcrBatchService(
properties, new WeightOcrStoragePolicy(properties), new ImageCropper(), client,
new WeightCandidateSelector(), objectMapper);
var result = service.recognize(new WeightOcrBatchRequest("batch-a", null, null, null, false));
@@ -72,4 +77,12 @@ class WeightOcrBatchServiceTest {
50, Duration.ZERO, 0);
return new IntegrationProperties(baidu, null);
}
@Configuration
static class TestConfig {
@Bean
ObjectMapper objectMapper() {
return new ObjectMapper().findAndRegisterModules();
}
}
}
@@ -7,6 +7,9 @@ import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.springframework.util.unit.DataSize;
import jakarta.annotation.Resource;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import java.net.URI;
import java.nio.file.Files;
@@ -15,17 +18,21 @@ import java.time.Duration;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.when;
@DisplayName("OCR 文件存储策略功能")
@SpringJUnitConfig(WeightOcrStoragePolicy.class)
class WeightOcrStoragePolicyTest {
@TempDir
Path tempDirectory;
@MockBean private IntegrationProperties properties;
@Resource private WeightOcrStoragePolicy policy;
@Test
void resolvesDirectoriesInsideConfiguredRoots() throws Exception {
Path input = Files.createDirectories(tempDirectory.resolve("input/batch-a"));
Path outputRoot = tempDirectory.resolve("output");
WeightOcrStoragePolicy policy = new WeightOcrStoragePolicy(properties(input.getParent(), outputRoot));
when(properties.baiduOcr()).thenReturn(config(input.getParent(), outputRoot));
WeightOcrStoragePolicy.BatchPaths paths = policy.resolve("batch-a", null, "batch-id");
@@ -38,7 +45,7 @@ class WeightOcrStoragePolicyTest {
Path inputRoot = Files.createDirectories(tempDirectory.resolve("input"));
Path outputRoot = tempDirectory.resolve("output");
Path outside = Files.createDirectories(tempDirectory.resolve("outside"));
WeightOcrStoragePolicy policy = new WeightOcrStoragePolicy(properties(inputRoot, outputRoot));
when(properties.baiduOcr()).thenReturn(config(inputRoot, outputRoot));
assertThatThrownBy(() -> policy.resolve(outside.toString(), null, "batch-id"))
.isInstanceOfSatisfying(BizException.class,
@@ -48,12 +55,12 @@ class WeightOcrStoragePolicyTest {
exception -> assertThat(exception.getResultCode()).isEqualTo(ResultCode.FORBIDDEN));
}
private IntegrationProperties properties(Path inputRoot, Path outputRoot) {
private IntegrationProperties.BaiduOcr config(Path inputRoot, Path outputRoot) {
IntegrationProperties.BaiduOcr baidu = new IntegrationProperties.BaiduOcr(
true, "key", "secret", URI.create("https://example.com/token"),
URI.create("https://example.com/meter"), Duration.ofSeconds(1), Duration.ofSeconds(1),
inputRoot, outputRoot, DataSize.ofMegabytes(3), 40_000_000L,
50, Duration.ZERO, 0);
return new IntegrationProperties(baidu, null);
return baidu;
}
}