Files
mcp-server-lib/src/test/java/mcp/tools/helper/SchemaBuilderTest.java
2026-02-14 11:09:37 +01:00

71 lines
2.5 KiB
Java

package mcp.tools.helper;
import io.modelcontextprotocol.spec.McpSchema;
import org.junit.jupiter.api.Test;
import java.util.Map;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
public class SchemaBuilderTest {
@Test
public void testBuildObject() {
McpSchema.JsonSchema schema = new SchemaBuilder()
.type("object")
.addProperty("name", "string", "User name")
.addProperty("age", "integer", "User age")
.required("name")
.additionalProperties(false)
.build();
assertEquals("object", schema.type());
assertNotNull(schema.properties());
assertTrue(schema.properties().containsKey("name"));
assertTrue(schema.properties().containsKey("age"));
assertEquals(List.of("name"), schema.required());
assertEquals(false, schema.additionalProperties());
Map<String, Object> nameProp = (Map<String, Object>) schema.properties().get("name");
assertEquals("string", nameProp.get("type"));
assertEquals("User name", nameProp.get("description"));
}
@Test
public void testBuildMap() {
Map<String, Object> map = new SchemaBuilder()
.type("object")
.addProperty("message", "string", "Echo message")
.required("message")
.buildMap();
assertEquals("object", map.get("type"));
Map<String, Object> properties = (Map<String, Object>) map.get("properties");
assertNotNull(properties);
assertTrue(properties.containsKey("message"));
assertEquals(List.of("message"), map.get("required"));
}
@Test
public void testEmptySchema() {
McpSchema.JsonSchema schema = new SchemaBuilder().build();
assertEquals("object", schema.type());
assertNull(schema.properties());
assertNull(schema.required());
}
@Test
public void testReturns() {
Map<String, Object> map = new SchemaBuilder()
.returns("string", "The result")
.buildMap();
assertEquals("object", map.get("type"));
Map<String, Object> properties = (Map<String, Object>) map.get("properties");
assertNotNull(properties);
assertTrue(properties.containsKey("result"));
Map<String, Object> resultProp = (Map<String, Object>) properties.get("result");
assertEquals("string", resultProp.get("type"));
assertEquals("The result", resultProp.get("description"));
}
}