Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions src/HttpMock.Unit.Tests/EndpointMatchingRuleTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public void urls_match_it_returns_true()
_mockRequestHandler.Setup(m => m.Path).Returns("test");
_mockRequestHandler.Setup(m => m.QueryParams).Returns(new Dictionary<string, string>());

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test" };
var httpRequestHead = new HttpRequestHead { Uri = "test" };
var endpointMatchingRule = new EndpointMatchingRule();
Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead));
}
Expand All @@ -35,7 +35,7 @@ public void urls_and_methods_the_same_it_returns_true()
_mockRequestHandler.Setup(m => m.Method).Returns("PUT");
_mockRequestHandler.Setup(m => m.QueryParams).Returns(new Dictionary<string, string>());

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test", Method = "PUT" };
var httpRequestHead = new HttpRequestHead { Uri = "test", Method = "PUT" };
var endpointMatchingRule = new EndpointMatchingRule();

Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead));
Expand All @@ -48,7 +48,7 @@ public void urls_and_methods_differ_it_returns_false()
_mockRequestHandler.Setup(m => m.Method).Returns("GET");
_mockRequestHandler.Setup(m => m.QueryParams).Returns(new Dictionary<string, string>());

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test", Method = "PUT" };
var httpRequestHead = new HttpRequestHead { Uri = "test", Method = "PUT" };
var endpointMatchingRule = new EndpointMatchingRule();

Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead), Is.False);
Expand All @@ -61,7 +61,7 @@ public void urls_differ_and_methods_match_it_returns_false()
_mockRequestHandler.Setup(m => m.Method).Returns("GET");
_mockRequestHandler.Setup(m => m.QueryParams).Returns(new Dictionary<string, string>());

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test", Method = "GET" };
var httpRequestHead = new HttpRequestHead { Uri = "test", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();

Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead), Is.False);
Expand All @@ -75,7 +75,7 @@ public void urls_and_methods_match_queryparams_differ_it_returns_false()
_mockRequestHandler.Setup(m => m.QueryParams)
.Returns(new Dictionary<string, string> { { "myParam", "one" } });

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test", Method = "GET" };
var httpRequestHead = new HttpRequestHead { Uri = "test", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();

Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead), Is.False);
Expand All @@ -89,7 +89,7 @@ public void urls_and_methods_match_and_queryparams_exist_it_returns_true()
_mockRequestHandler.Setup(m => m.QueryParams)
.Returns(new Dictionary<string, string> { { "myParam", "one" } });

var httpRequestHead = new SimpleHttpRequestHead
var httpRequestHead = new HttpRequestHead
{ Uri = "test?oauth_consumer_key=test-api&elvis=alive&moonlandings=faked&myParam=one", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();

Expand All @@ -104,7 +104,7 @@ public void urls_and_methods_match_and_queryparams_does_not_exist_it_returns_fal
_mockRequestHandler.Setup(m => m.QueryParams)
.Returns(new Dictionary<string, string> { { "myParam", "one" } });

var httpRequestHead = new SimpleHttpRequestHead
var httpRequestHead = new HttpRequestHead
{ Uri = "test?oauth_consumer_key=test-api&elvis=alive&moonlandings=faked", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();
Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead), Is.False);
Expand All @@ -118,7 +118,7 @@ public void urls_and_methods_match_and_no_query_params_are_set_but_request_has_q
_mockRequestHandler.Setup(m => m.Method).Returns("GET");
_mockRequestHandler.Setup(m => m.QueryParams).Returns(new Dictionary<string, string>());

var httpRequestHead = new SimpleHttpRequestHead
var httpRequestHead = new HttpRequestHead
{ Uri = "test?oauth_consumer_key=test-api&elvis=alive&moonlandings=faked", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();

Expand All @@ -133,7 +133,7 @@ public void urls_and_methods_and_queryparams_match_it_returns_true()
_mockRequestHandler.Setup(m => m.QueryParams)
.Returns(new Dictionary<string, string> { { "myParam", "one" } });

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test?myParam=one", Method = "GET" };
var httpRequestHead = new HttpRequestHead { Uri = "test?myParam=one", Method = "GET" };

var endpointMatchingRule = new EndpointMatchingRule();
Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead));
Expand All @@ -148,7 +148,7 @@ public void urls_and_methods_match_headers_differ_it_returns_false()
_mockRequestHandler.Setup(m => m.RequestHeaders)
.Returns(new Dictionary<string, string> { { "myHeader", "one" } });

var httpRequestHead = new SimpleHttpRequestHead
var httpRequestHead = new HttpRequestHead
{
Uri = "test",
Method = "GET",
Expand All @@ -170,7 +170,7 @@ public void urls_and_methods_match_and_headers_match_it_returns_true()
_mockRequestHandler.Setup(m => m.RequestHeaders)
.Returns(new Dictionary<string, string> { { "myHeader", "one" } });

var httpRequestHead = new SimpleHttpRequestHead
var httpRequestHead = new HttpRequestHead
{
Uri = "test",
Method = "GET",
Expand All @@ -194,7 +194,7 @@ public void urls_and_methods_match_and_header_does_not_exist_it_returns_false()
_mockRequestHandler.Setup(m => m.RequestHeaders)
.Returns(new Dictionary<string, string> { { "myHeader", "one" } });

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test", Method = "GET" };
var httpRequestHead = new HttpRequestHead { Uri = "test", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();
Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead), Is.False);
}
Expand All @@ -207,7 +207,7 @@ public void should_do_a_case_insensitive_match_on_query_string_parameter_values(
_mockRequestHandler.Setup(m => m.QueryParams)
.Returns(new Dictionary<string, string> { { "myParam", "one" } });

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test?myParam=OnE", Method = "GET" };
var httpRequestHead = new HttpRequestHead { Uri = "test?myParam=OnE", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();
Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead));
}
Expand All @@ -221,7 +221,7 @@ public void should_do_a_case_insensitive_match_on_header_names_and_values()
_mockRequestHandler.Setup(m => m.RequestHeaders)
.Returns(new Dictionary<string, string> { { "myHeader", "one" } });

var httpRequestHead = new SimpleHttpRequestHead
var httpRequestHead = new HttpRequestHead
{
Uri = "test",
Method = "GET",
Expand All @@ -243,7 +243,7 @@ public void should_match_when_the_query_string_has_a_trailing_ampersand()
_mockRequestHandler.Setup(m => m.QueryParams)
.Returns(new Dictionary<string, string> { { "a", "b" }, { "c", "d" } });

var httpRequestHead = new SimpleHttpRequestHead { Uri = "test?a=b&c=d&", Method = "GET" };
var httpRequestHead = new HttpRequestHead { Uri = "test?a=b&c=d&", Method = "GET" };
var endpointMatchingRule = new EndpointMatchingRule();
Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead));
}
Expand All @@ -254,7 +254,7 @@ public void should_match_urls_containings_regex_reserved_characters()
_mockRequestHandler.Setup(m => m.Path).Returns("/test()");
_mockRequestHandler.Setup(m => m.QueryParams).Returns(new Dictionary<string, string>());

var httpRequestHead = new SimpleHttpRequestHead { Uri = "/test()" };
var httpRequestHead = new HttpRequestHead { Uri = "/test()" };
var endpointMatchingRule = new EndpointMatchingRule();
Assert.That(endpointMatchingRule.IsEndpointMatch(_mockRequestHandler.Object, httpRequestHead));
}
Expand Down
6 changes: 3 additions & 3 deletions src/HttpMock.Unit.Tests/RequestHandlerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ public void Gets_the_last_request_that_was_handled()

var requestHandler = new RequestHandler("/path", null);

requestHandler.RecordRequest(new SimpleHttpRequestHead(), "first");
requestHandler.RecordRequest(new SimpleHttpRequestHead(), "second");
requestHandler.RecordRequest(new SimpleHttpRequestHead(), expected);
requestHandler.RecordRequest(new HttpRequestHead(), "first");
requestHandler.RecordRequest(new HttpRequestHead(), "second");
requestHandler.RecordRequest(new HttpRequestHead(), expected);

var receivedRequest = requestHandler.LastRequest();

Expand Down
4 changes: 2 additions & 2 deletions src/HttpMock.Unit.Tests/RequestMatcherTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public void Should_match_a_handler()
var requestHandlerList = new List<IRequestHandler> { expectedRequest.Object };


var httpRequestHead = new SimpleHttpRequestHead { Method = "GET", Uri = "/path" };
var httpRequestHead = new HttpRequestHead { Method = "GET", Uri = "/path" };

var matchedRequest = requestMatcher.Match(httpRequestHead, requestHandlerList);

Expand Down Expand Up @@ -49,7 +49,7 @@ public void Should_match_a_specific_handler()
var requestHandlerList = new List<IRequestHandler> { otherRequest.Object, expectedRequest.Object };


var httpRequestHead = new SimpleHttpRequestHead { Method = "GET", Uri = "/path/specific" };
var httpRequestHead = new HttpRequestHead { Method = "GET", Uri = "/path/specific" };

var matchedRequest = requestMatcher.Match(httpRequestHead, requestHandlerList);

Expand Down
10 changes: 5 additions & 5 deletions src/HttpMock.Unit.Tests/RequestProcessorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public void If_no_handlers_found_should_fire_onresponse_with_a_404() {

HttpMockResponseHead capturedHead = null;
byte[] capturedBody = null;
_processor.OnRequest(new SimpleHttpRequestHead(), null, (h, b) => { capturedHead = h; capturedBody = b; });
_processor.OnRequest(new HttpRequestHead(), null, (h, b) => { capturedHead = h; capturedBody = b; });

Assert.That(capturedHead.Status, Is.EqualTo("404 NotFound"));
Assert.That(capturedBody, Is.Null);
Expand All @@ -88,7 +88,7 @@ public void If_a_handler_found_should_fire_onresponse_with_that_repsonse() {

HttpMockResponseHead capturedHead = null;
byte[] capturedBody = null;
_processor.OnRequest(new SimpleHttpRequestHead { Headers = headers }, null,
_processor.OnRequest(new HttpRequestHead { Headers = headers }, null,
(h, b) => { capturedHead = h; capturedBody = b; });

Assert.That(capturedHead.Status, Is.EqualTo(requestHandler.ResponseBuilder.BuildHeaders().Status));
Expand All @@ -102,7 +102,7 @@ public void Matching_HEAD_handler_should_output_handlers_expected_response_with_

RequestHandler requestHandler = _requestHandlerFactory.Head("test");
_processor.Add(requestHandler);
var httpRequestHead = new SimpleHttpRequestHead { Method = "HEAD", Headers = new Dictionary<string, string>() };
var httpRequestHead = new HttpRequestHead { Method = "HEAD", Headers = new Dictionary<string, string>() };

HttpMockResponseHead capturedHead = null;
byte[] capturedBody = null;
Expand Down Expand Up @@ -137,7 +137,7 @@ public void When_a_handler_is_hit_handlers_request_count_is_incremented() {
var requestProcessor = new RequestProcessor(_ruleThatReturnsFirstHandler.Object, new RequestHandlerList());

requestProcessor.Add(_requestHandlerFactory.Get(expectedPath));
var httpRequestHead = new SimpleHttpRequestHead { Headers = new Dictionary<string, string>(), Uri = expectedPath, Method = expectedPath };
var httpRequestHead = new HttpRequestHead { Headers = new Dictionary<string, string>(), Uri = expectedPath, Method = expectedPath };
requestProcessor.OnRequest(httpRequestHead, null, (h, b) => { });

var handler = requestProcessor.FindHandler(expectedMethod, expectedPath);
Expand All @@ -160,7 +160,7 @@ public void Returns_mock_not_found_when_handler_constraints_cannot_be_verified()
var p = new RequestProcessor(matchingRule.Object, new RequestHandlerList { handlerWithConstraints });

HttpMockResponseHead capturedHead = null;
p.OnRequest(new SimpleHttpRequestHead { Uri = "http://blah.com/cheese/" + excludePhrase }, null,
p.OnRequest(new HttpRequestHead { Uri = "http://blah.com/cheese/" + excludePhrase }, null,
(h, b) => capturedHead = h);

Assert.That(capturedHead.Status, Is.EqualTo("404 NotFound"));
Expand Down
35 changes: 0 additions & 35 deletions src/HttpMock/HttpListenerRequestHeadAdapter.cs

This file was deleted.

12 changes: 12 additions & 0 deletions src/HttpMock/HttpRequestHead.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System.Collections.Generic;

namespace HttpMock
{
public class HttpRequestHead : IHttpRequestHead
{
public string Method { get; set; }
public string Uri { get; set; }
public IDictionary<string, string> Headers { get; set; }
public bool HasEntityBody { get; set; }
}
}
15 changes: 14 additions & 1 deletion src/HttpMock/HttpServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,20 @@ private void HandleContext(HttpListenerContext context)
{
try
{
var requestHead = new HttpListenerRequestHeadAdapter(context.Request);
var headers = new Dictionary<string, string>();
foreach (string key in context.Request.Headers)
{
if (key != null)
headers[key] = context.Request.Headers[key];
}

var requestHead = new HttpRequestHead
{
Method = context.Request.HttpMethod,
Uri = context.Request.Url.PathAndQuery,
Headers = headers,
HasEntityBody = context.Request.HasEntityBody
};
Stream body = context.Request.HasEntityBody ? context.Request.InputStream : null;

_requestProcessor.OnRequest(requestHead, body, (responseHead, responseBody) =>
Expand Down
2 changes: 1 addition & 1 deletion src/HttpMock/IHttpRequestHead.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ public interface IHttpRequestHead
string Method { get; }
string Uri { get; }
IDictionary<string, string> Headers { get; }
bool HasBody();
bool HasEntityBody { get; }
}
}
2 changes: 1 addition & 1 deletion src/HttpMock/RequestProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ private static async void HandleRequest(IHttpRequestHead request, Stream request
? handler.ResponseBuilder.BuildBody(request.Headers)
: null;

if (request.HasBody() && requestBody != null)
if (request.HasEntityBody && requestBody != null)
{
try
{
Expand Down
26 changes: 0 additions & 26 deletions src/HttpMock/SimpleHttpRequestHead.cs

This file was deleted.

Loading