Add initial task extension conformance coverage (#1734)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7c99928c-a943-49f4-9a63-8b04a0e4d18b
This commit is contained in:
parent
f7c61fafdb
commit
83523b0a42
1 changed files with 463 additions and 43 deletions
|
|
@ -8,6 +8,7 @@ using System.Net;
|
|||
using System.Net.ServerSentEvents;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
|
||||
namespace ModelContextProtocol.AspNetCore.Tests;
|
||||
|
||||
|
|
@ -32,6 +33,18 @@ public class HttpHeaderConformanceTests(ITestOutputHelper outputHelper) : Kestre
|
|||
Name = nameof(HttpHeaderConformanceTests),
|
||||
Version = "1.0",
|
||||
};
|
||||
#pragma warning disable MCPEXP002
|
||||
options.RequestHandlers =
|
||||
[
|
||||
new McpServerRequestHandler
|
||||
{
|
||||
Method = "extension/get",
|
||||
RoutingNameParameter = "itemId",
|
||||
Handler = static (_, _) => new ValueTask<JsonNode?>(
|
||||
new JsonObject { ["resultType"] = "complete" }),
|
||||
},
|
||||
];
|
||||
#pragma warning restore MCPEXP002
|
||||
}).WithTools(Tools).WithHttpTransport();
|
||||
|
||||
_app = Builder.Build();
|
||||
|
|
@ -110,6 +123,23 @@ public class HttpHeaderConformanceTests(ITestOutputHelper outputHelper) : Kestre
|
|||
|
||||
#region Server-side validation tests
|
||||
|
||||
[Fact]
|
||||
public async Task Server_UsesCustomHandlerRoutingNameMetadata()
|
||||
{
|
||||
await StartAsync();
|
||||
await ProbeWithJuly2026ProtocolVersionAsync();
|
||||
|
||||
using var request = new HttpRequestMessage(HttpMethod.Post, "");
|
||||
request.Content = JsonContent(
|
||||
"""{"jsonrpc":"2.0","id":2,"method":"extension/get","params":{"itemId":"item-42","_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"TestClient","version":"1.0"},"io.modelcontextprotocol/clientCapabilities":{}}}}""");
|
||||
request.Headers.Add(McpHttpHeaders.ProtocolVersion, "2026-07-28");
|
||||
request.Headers.Add(McpHttpHeaders.Method, "extension/get");
|
||||
request.Headers.Add(McpHttpHeaders.Name, "item-42");
|
||||
|
||||
using var response = await HttpClient.SendAsync(request, TestContext.Current.CancellationToken);
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Server_AcceptsUnionIntegerCanonicalForm()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue