package com.zy.ai.service; import com.zy.ai.entity.LlmRouteConfig; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; class LlmRoutingServiceProtocolDefaultsTest { @Test void fillAndNormalizeShouldDefaultProtocolFieldsAndTrimStrings() { LlmRoutingService service = new LlmRoutingService(null, null); LlmRouteConfig config = new LlmRouteConfig(); config.setName(" route-a "); config.setProviderType(" "); config.setProtocolType(null); config.setBaseUrl(" https://example.com/v1 "); config.setEndpointPath(" /chat/completions "); config.setApiKey(" sk-test "); config.setAuthType(""); config.setAuthHeaderName(" Authorization "); config.setModel(" gpt-test "); config.setCapabilities(" chat,tools "); config.setRequestOptions(" {\"temperature\":0} "); config.setMemo(" "); service.fillAndNormalize(config, true); assertEquals("route-a", config.getName()); assertEquals("OPENAI_COMPATIBLE", config.getProviderType()); assertEquals("OPENAI_CHAT_COMPLETIONS", config.getProtocolType()); assertEquals("https://example.com/v1", config.getBaseUrl()); assertEquals("/chat/completions", config.getEndpointPath()); assertEquals("sk-test", config.getApiKey()); assertEquals("BEARER", config.getAuthType()); assertEquals("Authorization", config.getAuthHeaderName()); assertEquals("gpt-test", config.getModel()); assertEquals("chat,tools", config.getCapabilities()); assertEquals("{\"temperature\":0}", config.getRequestOptions()); assertNull(config.getMemo()); assertNotNull(config.getCreateTime()); assertNotNull(config.getUpdateTime()); } }