|
11 | 11 | import com.fasterxml.jackson.databind.node.JsonNodeFactory; |
12 | 12 | import com.fasterxml.jackson.databind.node.ObjectNode; |
13 | 13 | import com.github.copilot.sdk.json.GetForegroundSessionResponse; |
| 14 | +import com.github.copilot.sdk.json.McpHttpServerConfig; |
| 15 | +import com.github.copilot.sdk.json.McpStdioServerConfig; |
| 16 | +import com.github.copilot.sdk.json.ModelCapabilitiesOverride; |
14 | 17 | import com.github.copilot.sdk.json.PermissionRequest; |
15 | 18 | import com.github.copilot.sdk.json.PermissionRequestResult; |
16 | 19 | import com.github.copilot.sdk.json.PostToolUseHookInput; |
@@ -178,4 +181,53 @@ void permissionRequestResultSetRules() { |
178 | 181 | assertEquals(2, result.getRules().size()); |
179 | 182 | assertEquals("bash:read", result.getRules().get(0)); |
180 | 183 | } |
| 184 | + |
| 185 | + @Test |
| 186 | + void mcpHttpServerConfigCoversGettersAndFluentSetters() { |
| 187 | + var headers = java.util.Map.of("Authorization", "Bearer token"); |
| 188 | + var tools = java.util.List.of("*", "search"); |
| 189 | + |
| 190 | + var cfg = new McpHttpServerConfig().setUrl("https://mcp.example.com/sse").setHeaders(headers).setTools(tools) |
| 191 | + .setTimeout(45); |
| 192 | + |
| 193 | + assertEquals("http", cfg.getType()); |
| 194 | + assertEquals("https://mcp.example.com/sse", cfg.getUrl()); |
| 195 | + assertEquals("Bearer token", cfg.getHeaders().get("Authorization")); |
| 196 | + assertEquals(tools, cfg.getTools()); |
| 197 | + assertEquals(45, cfg.getTimeout()); |
| 198 | + } |
| 199 | + |
| 200 | + @Test |
| 201 | + void mcpStdioServerConfigCoversGettersAndFluentSetters() { |
| 202 | + var args = java.util.List.of("-y", "@modelcontextprotocol/server-filesystem"); |
| 203 | + var env = java.util.Map.of("DEBUG", "1"); |
| 204 | + var tools = java.util.List.of("*"); |
| 205 | + |
| 206 | + var cfg = new McpStdioServerConfig().setCommand("npx").setArgs(args).setEnv(env).setWorkingDirectory("/tmp") |
| 207 | + .setTools(tools).setTimeout(30); |
| 208 | + |
| 209 | + assertEquals("stdio", cfg.getType()); |
| 210 | + assertEquals("npx", cfg.getCommand()); |
| 211 | + assertEquals(args, cfg.getArgs()); |
| 212 | + assertEquals("1", cfg.getEnv().get("DEBUG")); |
| 213 | + assertEquals("/tmp", cfg.getWorkingDirectory()); |
| 214 | + assertEquals(tools, cfg.getTools()); |
| 215 | + assertEquals(30, cfg.getTimeout()); |
| 216 | + } |
| 217 | + |
| 218 | + @Test |
| 219 | + void modelCapabilitiesOverrideCoversNestedSupportsAndLimits() { |
| 220 | + var supports = new ModelCapabilitiesOverride.Supports().setVision(Boolean.TRUE) |
| 221 | + .setReasoningEffort(Boolean.FALSE); |
| 222 | + var limits = new ModelCapabilitiesOverride.Limits().setMaxPromptTokens(2048).setMaxOutputTokens(512) |
| 223 | + .setMaxContextWindowTokens(8192); |
| 224 | + |
| 225 | + var override = new ModelCapabilitiesOverride().setSupports(supports).setLimits(limits); |
| 226 | + |
| 227 | + assertTrue(override.getSupports().getVision()); |
| 228 | + assertFalse(override.getSupports().getReasoningEffort()); |
| 229 | + assertEquals(2048, override.getLimits().getMaxPromptTokens()); |
| 230 | + assertEquals(512, override.getLimits().getMaxOutputTokens()); |
| 231 | + assertEquals(8192, override.getLimits().getMaxContextWindowTokens()); |
| 232 | + } |
181 | 233 | } |
0 commit comments