Files
crawler-plugin/backend-java/src/test/java/com/nanri/aiimage/config/LlmHttpConfigResolverTest.java
T

87 lines
2.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.nanri.aiimage.config;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* task-168LLM 客户端配置接入契约(plan 10)。
* 从 aiimage.http-client.* 读取超时/重试;默认值与现状一致;覆盖生效;
* 非法值钳制。
*/
class LlmHttpConfigResolverTest {
private HttpClientProperties properties;
private LlmHttpConfigResolver resolver;
@BeforeEach
void setUp() {
properties = new HttpClientProperties();
resolver = new LlmHttpConfigResolver(properties);
}
@Test
void timeoutFromConfigApplied() {
assertEquals(10_000L, resolver.connectTimeoutMillis());
assertEquals(60_000L, resolver.readTimeoutMillis());
assertEquals(90_000L, resolver.callTimeoutMillis());
}
@Test
void defaultValuesKept() {
// 命名空间默认 = 现状基线(connect 10s / read 60s / call 90s / retry 3
assertEquals(10_000L, resolver.connectTimeoutMillis());
assertEquals(60_000L, resolver.readTimeoutMillis());
assertEquals(3, resolver.maxRetries());
assertEquals(500L, resolver.baseRetryDelayMillis());
}
@Test
void overrideTakesEffect() {
properties.setConnectTimeoutMillis(30_000);
properties.setReadTimeoutMillis(120_000);
properties.setMaxRetries(5);
assertEquals(30_000L, resolver.connectTimeoutMillis());
assertEquals(120_000L, resolver.readTimeoutMillis());
assertEquals(5, resolver.maxRetries());
}
@Test
void callTimeoutReflectsTotal() {
properties.setCallTimeoutMillis(180_000);
assertEquals(180_000L, resolver.callTimeoutMillis());
}
@Test
void retryConfigReflected() {
properties.setMaxRetries(0);
assertEquals(0, resolver.maxRetries());
properties.setMaxRetries(99);
assertEquals(10, resolver.maxRetries(), "重试钳制到 10");
}
@Test
void invalidTimeoutsClamped() {
properties.setConnectTimeoutMillis(-1);
assertEquals(1_000L, resolver.connectTimeoutMillis());
properties.setReadTimeoutMillis(999_999_999L);
assertEquals(3_600_000L, resolver.readTimeoutMillis());
}
@Test
void resolverBindingWired() {
assertTrue(resolver.connectTimeoutMillis() > 0);
assertTrue(resolver.maxRetries() >= 0);
}
@Test
void behaviorSameAsCurrentBaseline() {
// 与 SimilarAsinProperties.llm 现状对比:connect 一致(10s)、重试一致(3)
assertEquals(10_000L, resolver.connectTimeoutMillis());
assertEquals(3, resolver.maxRetries());
}
}