|
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 mcpHttpServerConfigGettersAndFluentSetters() { |
| 187 | + var headers = new java.util.HashMap<String, String>(); |
| 188 | + headers.put("Authorization", "Bearer token"); |
| 189 | + var tools = java.util.List.of("tool-a"); |
| 190 | + var config = new McpHttpServerConfig().setUrl("https://mcp.example.com/sse").setHeaders(headers).setTools(tools) |
| 191 | + .setTimeout(30); |
| 192 | + |
| 193 | + assertEquals("http", config.getType()); |
| 194 | + assertEquals("https://mcp.example.com/sse", config.getUrl()); |
| 195 | + assertEquals("Bearer token", config.getHeaders().get("Authorization")); |
| 196 | + assertEquals(tools, config.getTools()); |
| 197 | + assertEquals(30, config.getTimeout()); |
| 198 | + } |
| 199 | + |
| 200 | + @Test |
| 201 | + void mcpStdioServerConfigGettersAndFluentSetters() { |
| 202 | + var args = java.util.List.of("-y", "@modelcontextprotocol/server-filesystem"); |
| 203 | + var env = new java.util.HashMap<String, String>(); |
| 204 | + env.put("NODE_ENV", "test"); |
| 205 | + var tools = java.util.List.of("*"); |
| 206 | + var config = new McpStdioServerConfig().setCommand("npx").setArgs(args).setEnv(env) |
| 207 | + .setWorkingDirectory("/tmp/mcp").setTools(tools).setTimeout(15); |
| 208 | + |
| 209 | + assertEquals("stdio", config.getType()); |
| 210 | + assertEquals("npx", config.getCommand()); |
| 211 | + assertEquals(args, config.getArgs()); |
| 212 | + assertEquals("test", config.getEnv().get("NODE_ENV")); |
| 213 | + assertEquals("/tmp/mcp", config.getWorkingDirectory()); |
| 214 | + assertEquals(tools, config.getTools()); |
| 215 | + assertEquals(15, config.getTimeout()); |
| 216 | + } |
| 217 | + |
| 218 | + @Test |
| 219 | + void modelCapabilitiesOverrideAndNestedClassesGettersAndSetters() { |
| 220 | + var supports = new ModelCapabilitiesOverride.Supports().setVision(true).setReasoningEffort(false); |
| 221 | + var limits = new ModelCapabilitiesOverride.Limits().setMaxPromptTokens(1000).setMaxOutputTokens(2000) |
| 222 | + .setMaxContextWindowTokens(3000); |
| 223 | + var modelCapabilitiesOverride = new ModelCapabilitiesOverride().setSupports(supports).setLimits(limits); |
| 224 | + |
| 225 | + assertEquals(supports, modelCapabilitiesOverride.getSupports()); |
| 226 | + assertEquals(limits, modelCapabilitiesOverride.getLimits()); |
| 227 | + assertTrue(modelCapabilitiesOverride.getSupports().getVision()); |
| 228 | + assertFalse(modelCapabilitiesOverride.getSupports().getReasoningEffort()); |
| 229 | + assertEquals(1000, modelCapabilitiesOverride.getLimits().getMaxPromptTokens()); |
| 230 | + assertEquals(2000, modelCapabilitiesOverride.getLimits().getMaxOutputTokens()); |
| 231 | + assertEquals(3000, modelCapabilitiesOverride.getLimits().getMaxContextWindowTokens()); |
| 232 | + } |
181 | 233 | } |
0 commit comments