Skip to content

Commit 7557d0c

Browse files
committed
Move WithHttpMethod and WithHttpVersion tests
1 parent be3a5cd commit 7557d0c

File tree

8 files changed

+181
-361
lines changed

8 files changed

+181
-361
lines changed

src/TestableHttpClient/HttpRequestMessageExtensions.cs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,6 @@ internal static bool HasHttpVersion(this HttpRequestMessage httpRequestMessage,
1919
return httpRequestMessage.Version == httpVersion;
2020
}
2121

22-
/// <summary>
23-
/// Determines whether a specific HttpVersion is set on a request.
24-
/// </summary>
25-
/// <param name="httpRequestMessage">A <see cref="HttpRequestMessage"/> to check the correct version on.</param>
26-
/// <param name="httpVersion">The expected version.</param>
27-
/// <returns>true when the HttpVersion matches; otherwise, false.</returns>
28-
internal static bool HasHttpVersion(this HttpRequestMessage httpRequestMessage, string httpVersion)
29-
{
30-
Guard.ThrowIfNull(httpRequestMessage);
31-
Guard.ThrowIfNullOrEmpty(httpVersion);
32-
33-
return httpRequestMessage.HasHttpVersion(new Version(httpVersion));
34-
}
35-
3622
/// <summary>
3723
/// Determines whether a specific HttpMethod is set on a request.
3824
/// </summary>
@@ -47,20 +33,6 @@ internal static bool HasHttpMethod(this HttpRequestMessage httpRequestMessage, H
4733
return httpRequestMessage.Method == httpMethod;
4834
}
4935

50-
/// <summary>
51-
/// Determines whether a specific HttpMethod is set on a request.
52-
/// </summary>
53-
/// <param name="httpRequestMessage">A <see cref="HttpRequestMessage"/> to check the correct method on.</param>
54-
/// <param name="httpMethod">The expected method.</param>
55-
/// <returns>true when the HttpMethod matches; otherwise, false.</returns>
56-
internal static bool HasHttpMethod(this HttpRequestMessage httpRequestMessage, string httpMethod)
57-
{
58-
Guard.ThrowIfNull(httpRequestMessage);
59-
Guard.ThrowIfNullOrEmpty(httpMethod);
60-
61-
return httpRequestMessage.HasHttpMethod(new HttpMethod(httpMethod));
62-
}
63-
6436
/// <summary>
6537
/// Determines whether a specific header is set on a request.
6638
/// </summary>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
2+
3+
public sealed class WithHttpMethod
4+
{
5+
[Fact]
6+
public void WithNullHttpMethod_ThrowsArgumentNullException()
7+
{
8+
// Arrange
9+
var sut = new HttpRequestMessageAsserter(Array.Empty<HttpRequestMessage>());
10+
// Act
11+
var exception = Assert.Throws<ArgumentNullException>(() => sut.WithHttpMethod(null!));
12+
// Assert
13+
Assert.Equal("httpMethod", exception.ParamName);
14+
}
15+
16+
[Fact]
17+
public void WithNumberOfRequests_WithNullHttpMethod_ThrowsArgumentNullException()
18+
{
19+
// Arrange
20+
var sut = new HttpRequestMessageAsserter(Array.Empty<HttpRequestMessage>());
21+
// Act
22+
var exception = Assert.Throws<ArgumentNullException>(() => sut.WithHttpMethod(null!, 1));
23+
// Assert
24+
Assert.Equal("httpMethod", exception.ParamName);
25+
}
26+
27+
[Fact]
28+
public void WithMatchingHttpMethod_ShouldNotThrow()
29+
{
30+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
31+
32+
HttpRequestMessageAsserter sut = new([request]);
33+
34+
sut.WithHttpMethod(HttpMethod.Get);
35+
}
36+
37+
[Fact]
38+
public void WithMatchingNumberOfRequests_WithMatchingHttpMethod_ShouldNotThrow()
39+
{
40+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
41+
42+
HttpRequestMessageAsserter sut = new([request, request]);
43+
44+
sut.WithHttpMethod(HttpMethod.Get, 2);
45+
}
46+
47+
[Fact]
48+
public void WithNonMatchingNumberOfRequests_WithMatchingHttpMethod_ShouldNotThrow()
49+
{
50+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
51+
52+
HttpRequestMessageAsserter sut = new([request, request]);
53+
54+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithHttpMethod(HttpMethod.Get, 1));
55+
}
56+
57+
[Fact]
58+
public void WithNonMatchingHttpMethod_ShouldThrowHttpRequestMessageAssertionException()
59+
{
60+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
61+
HttpRequestMessageAsserter sut = new([request]);
62+
63+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithHttpMethod(HttpMethod.Post));
64+
}
65+
66+
[Fact]
67+
public void WithMatchingNumberOfRequests_WithNonMatchingHttpMethod_ShouldThrowHttpRequestMessageAssertionException()
68+
{
69+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
70+
HttpRequestMessageAsserter sut = new([request, request]);
71+
72+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithHttpMethod(HttpMethod.Post, 2));
73+
}
74+
}
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
2+
3+
public sealed class WithHttpVersion
4+
{
5+
[Fact]
6+
public void NullHttpVersion_ThrowsArgumentNullException()
7+
{
8+
HttpRequestMessageAsserter sut = new([]);
9+
10+
var exception = Assert.Throws<ArgumentNullException>(() => sut.WithHttpVersion(null!));
11+
12+
Assert.Equal("httpVersion", exception.ParamName);
13+
}
14+
15+
[Fact]
16+
public void WithNumberOfRequests_NullHttpVersion_ThrowsArgumentNullException()
17+
{
18+
HttpRequestMessageAsserter sut = new([]);
19+
20+
var exception = Assert.Throws<ArgumentNullException>(() => sut.WithHttpVersion(null!, 1));
21+
22+
Assert.Equal("httpVersion", exception.ParamName);
23+
}
24+
25+
[Fact]
26+
public void WithMatchingVersion_DoesNotThrow()
27+
{
28+
using HttpRequestMessage request = new()
29+
{
30+
Version = HttpVersion.Version11
31+
};
32+
33+
HttpRequestMessageAsserter sut = new([request]);
34+
35+
sut.WithHttpVersion(HttpVersion.Version11);
36+
}
37+
38+
[Fact]
39+
public void WithMatchingNumberOfRequests_WithMatchingVersions_DoesNotThrow()
40+
{
41+
using HttpRequestMessage request = new()
42+
{
43+
Version = HttpVersion.Version11
44+
};
45+
46+
HttpRequestMessageAsserter sut = new([request, request]);
47+
48+
sut.WithHttpVersion(HttpVersion.Version11, 2);
49+
}
50+
51+
[Fact]
52+
public void WithNonMatchingVersion_ThrowsHttpRequestMessageAssertionException()
53+
{
54+
using HttpRequestMessage request = new()
55+
{
56+
Version = HttpVersion.Version10
57+
};
58+
59+
HttpRequestMessageAsserter sut = new([request]);
60+
61+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithHttpVersion(HttpVersion.Version11));
62+
}
63+
64+
[Fact]
65+
public void WithMatchingNumberOfRequests_WithNonMatchingVersion_ThrowsHttpRequestMessageAssertionException()
66+
{
67+
using HttpRequestMessage request = new()
68+
{
69+
Version = HttpVersion.Version10
70+
};
71+
72+
HttpRequestMessageAsserter sut = new([request]);
73+
74+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithHttpVersion(HttpVersion.Version11, 1));
75+
}
76+
77+
[Fact]
78+
public void WithNonMatchingNumberOfRequests_WithMatchingVersion_ThrowsHttpRequestMessageAssertionException()
79+
{
80+
using HttpRequestMessage request = new()
81+
{
82+
Version = HttpVersion.Version11
83+
};
84+
85+
HttpRequestMessageAsserter sut = new([request]);
86+
87+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithHttpVersion(HttpVersion.Version11, 2));
88+
}
89+
}

test/TestableHttpClient.Tests/HttpRequestMessageAsserterTests/WithRequestUri.cs

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
using NSubstitute;
2-
3-
using TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests;
4-
5-
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
1+
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
62

73
public sealed class WithRequestUri
84
{
95
[Fact]
10-
public void NullPattern_ThrowsArgumentNullException()
6+
public void NullRequestUri_ThrowsArgumentNullException()
117
{
128
HttpRequestMessageAsserter sut = new([]);
139

@@ -17,7 +13,7 @@ public void NullPattern_ThrowsArgumentNullException()
1713
}
1814

1915
[Fact]
20-
public void EmptyPattern_ThrowsArgumentException()
16+
public void EmptyRequestUri_ThrowsArgumentException()
2117
{
2218
HttpRequestMessageAsserter sut = new([]);
2319

@@ -27,7 +23,7 @@ public void EmptyPattern_ThrowsArgumentException()
2723
}
2824

2925
[Fact]
30-
public void WithPatternMatchingARequest_DoesNotThrow()
26+
public void WithMatchingRequestUri_DoesNotThrow()
3127
{
3228
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
3329
HttpRequestMessageAsserter sut = new([request]);
@@ -36,7 +32,7 @@ public void WithPatternMatchingARequest_DoesNotThrow()
3632
}
3733

3834
[Fact]
39-
public void WithPatternNotMatchingAnyRequest_ThrowsHttpRequestMessageAssertionException()
35+
public void WithNonMatchingRequestUri_ThrowsHttpRequestMessageAssertionException()
4036
{
4137
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
4238
HttpRequestMessageAsserter sut = new([request]);
@@ -46,7 +42,7 @@ public void WithPatternNotMatchingAnyRequest_ThrowsHttpRequestMessageAssertionEx
4642

4743

4844
[Fact]
49-
public void WithPatternNotMatchingAnyRequestWithCustomOptions_ThrowsHttpRequestMessageAssertionException()
45+
public void WithNonMatchinRequestUri_WithCustomOptions_ThrowsHttpRequestMessageAssertionException()
5046
{
5147
TestableHttpMessageHandlerOptions options = new();
5248
options.UriPatternMatchingOptions.HostCaseInsensitive = false;
@@ -59,16 +55,25 @@ public void WithPatternNotMatchingAnyRequestWithCustomOptions_ThrowsHttpRequestM
5955
}
6056

6157
[Fact]
62-
public void WithPatternMatchingASingleRequest_DoesNotThrow()
58+
public void WithMatchingNumberOfRequests_WithMatchingRequestUri_DoesNotThrow()
59+
{
60+
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
61+
HttpRequestMessageAsserter sut = new([request, request]);
62+
63+
sut.WithRequestUri("https://example.com/", 2);
64+
}
65+
66+
[Fact]
67+
public void WithNonMatchingNumberOfRequest_WithMatchingRequestUris_ThrowsHttpRequestMessageAssertionException()
6368
{
6469
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
6570
HttpRequestMessageAsserter sut = new([request]);
6671

67-
sut.WithRequestUri("https://example.com/", 1);
72+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithRequestUri("https://example.com/", 2));
6873
}
6974

7075
[Fact]
71-
public void WithPatternMatchingMultipleRequestsButOnlyOneReceived_ThrowsHttpRequestMessageAssertionException()
76+
public void WithNonMatchingNumberOfRequest_WithNonMatchingRequestUris_ThrowsHttpRequestMessageAssertionException()
7277
{
7378
using HttpRequestMessage request = new(HttpMethod.Get, "https://example.com");
7479
HttpRequestMessageAsserter sut = new([request]);

test/TestableHttpClient.Tests/HttpRequestMessageExtensionsTests/HasHttpMethod.cs

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

0 commit comments

Comments
 (0)