* Add idle session pruning tests
* Remove redundant CTS from StreamableHttpHandler
* StreamableHttpServerTransport.HandlePostRequest already creates the equivelant CTS
which DeleteRequest_CompletesSession_WhichCancelsLongRunningToolCalls verifies
* Fix accept header validation for GET
* Use InvalidOperationException for transport-not-connected errors in doc comments
* Fix flaky Cancellation_ThrowsCancellationException test
20 lines
736 B
C#
20 lines
736 B
C#
namespace ModelContextProtocol.Tests.Utils;
|
|
|
|
public class MockHttpHandler : HttpMessageHandler
|
|
{
|
|
public Func<HttpRequestMessage, Task<HttpResponseMessage>>? RequestHandler { get; set; }
|
|
|
|
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
|
{
|
|
if (RequestHandler == null)
|
|
throw new InvalidOperationException($"No {nameof(RequestHandler)} was set! Please set handler first and make request afterwards.");
|
|
|
|
cancellationToken.ThrowIfCancellationRequested();
|
|
|
|
var result = await RequestHandler.Invoke(request);
|
|
|
|
cancellationToken.ThrowIfCancellationRequested();
|
|
|
|
return result;
|
|
}
|
|
}
|