-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathFakeMessageHandler.cs
More file actions
28 lines (24 loc) · 911 Bytes
/
FakeMessageHandler.cs
File metadata and controls
28 lines (24 loc) · 911 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
namespace Cucumber.SimpleDb.Test.Fakes
{
//http://stackoverflow.com/questions/10693955/stubbing-or-mocking-asp-net-web-api-httpclient
internal class FakeHttpMessageHandler : HttpMessageHandler
{
private readonly HttpResponseMessage _responseMessage;
private readonly Action<HttpRequestMessage> _requestFilter;
public FakeHttpMessageHandler(HttpResponseMessage responseMessage, Action<HttpRequestMessage> requestFilter)
{
_responseMessage = responseMessage;
_requestFilter = requestFilter;
}
public HttpRequestMessage RequestMessage { get; private set; }
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
_requestFilter(request);
return Task.Factory.StartNew(() => _responseMessage, cancellationToken);
}
}
}