Skip to content

Commit be3a5cd

Browse files
committed
Refactor tests to test methods based on the HttpRequestMessageAsserter, so that will be easier to refactor.
1 parent a748c5b commit be3a5cd

File tree

4 files changed

+105
-81
lines changed

4 files changed

+105
-81
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
2+
3+
public sealed class Constructor
4+
{
5+
[Fact]
6+
public void Constructor_NullRequestList_ThrowsArgumentNullException()
7+
{
8+
Assert.Throws<ArgumentNullException>(() => new HttpRequestMessageAsserter(null!));
9+
}
10+
11+
[Fact]
12+
public void Constructor_NullOptions_SetsDefault()
13+
{
14+
HttpRequestMessageAsserter sut = new([], null);
15+
Assert.NotNull(sut.Options);
16+
}
17+
18+
[Fact]
19+
public void Constructor_NotNullOptions_SetsOptions()
20+
{
21+
TestableHttpMessageHandlerOptions options = new();
22+
HttpRequestMessageAsserter sut = new([], options);
23+
Assert.Same(options, sut.Options);
24+
}
25+
}

test/TestableHttpClient.Tests/HttpRequestMessageAsserterTests.cs renamed to test/TestableHttpClient.Tests/HttpRequestMessageAsserterTests/WithFilter.cs

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,7 @@
1-
namespace TestableHttpClient.Tests;
1+
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
22

3-
public class HttpRequestMessageAsserterTests
3+
public sealed class WithFilter
44
{
5-
[Fact]
6-
public void Constructor_NullRequestList_ThrowsArgumentNullException()
7-
{
8-
Assert.Throws<ArgumentNullException>(() => new HttpRequestMessageAsserter(null!));
9-
}
10-
11-
[Fact]
12-
public void Constructor_NullOptions_SetsDefault()
13-
{
14-
HttpRequestMessageAsserter sut = new([], null);
15-
Assert.NotNull(sut.Options);
16-
}
17-
18-
[Fact]
19-
public void Constructor_NotNullOptions_SetsOptions()
20-
{
21-
TestableHttpMessageHandlerOptions options = new();
22-
HttpRequestMessageAsserter sut = new([], options);
23-
Assert.Same(options, sut.Options);
24-
}
25-
265
[Fact]
276
public void WithFilter_NullPredicate_ThrowsArgumentNullException()
287
{
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
using NSubstitute;
2+
3+
using TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests;
4+
5+
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
6+
7+
public sealed class WithRequestUri
8+
{
9+
[Fact]
10+
public void NullPattern_ThrowsArgumentNullException()
11+
{
12+
HttpRequestMessageAsserter sut = new([]);
13+
14+
var exception = Assert.Throws<ArgumentNullException>(() => sut.WithRequestUri(null!));
15+
16+
Assert.Equal("pattern", exception.ParamName);
17+
}
18+
19+
[Fact]
20+
public void EmptyPattern_ThrowsArgumentException()
21+
{
22+
HttpRequestMessageAsserter sut = new([]);
23+
24+
var exception = Assert.Throws<ArgumentException>(() => sut.WithRequestUri(string.Empty));
25+
26+
Assert.Equal("pattern", exception.ParamName);
27+
}
28+
29+
[Fact]
30+
public void WithPatternMatchingARequest_DoesNotThrow()
31+
{
32+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
33+
HttpRequestMessageAsserter sut = new([request]);
34+
35+
sut.WithRequestUri("https://example.com/");
36+
}
37+
38+
[Fact]
39+
public void WithPatternNotMatchingAnyRequest_ThrowsHttpRequestMessageAssertionException()
40+
{
41+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
42+
HttpRequestMessageAsserter sut = new([request]);
43+
44+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithRequestUri("https://no-op.com/"));
45+
}
46+
47+
48+
[Fact]
49+
public void WithPatternNotMatchingAnyRequestWithCustomOptions_ThrowsHttpRequestMessageAssertionException()
50+
{
51+
TestableHttpMessageHandlerOptions options = new();
52+
options.UriPatternMatchingOptions.HostCaseInsensitive = false;
53+
54+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
55+
56+
HttpRequestMessageAsserter sut = new([request], options);
57+
58+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithRequestUri("https://EXAMPLE.com/"));
59+
}
60+
61+
[Fact]
62+
public void WithPatternMatchingASingleRequest_DoesNotThrow()
63+
{
64+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
65+
HttpRequestMessageAsserter sut = new([request]);
66+
67+
sut.WithRequestUri("https://example.com/", 1);
68+
}
69+
70+
[Fact]
71+
public void WithPatternMatchingMultipleRequestsButOnlyOneReceived_ThrowsHttpRequestMessageAssertionException()
72+
{
73+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
74+
HttpRequestMessageAsserter sut = new([request]);
75+
76+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithRequestUri("https://no-op.com/", 2));
77+
}
78+
}

test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestUri.cs

Lines changed: 0 additions & 58 deletions
This file was deleted.

0 commit comments

Comments
 (0)