Skip to content

Commit 138f773

Browse files
committed
Rewrite tests for WithContent
1 parent 707bef8 commit 138f773

File tree

5 files changed

+202
-225
lines changed

5 files changed

+202
-225
lines changed

src/TestableHttpClient/HttpRequestMessageExtensions.cs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -98,18 +98,6 @@ internal static bool HasContentHeader(this HttpRequestMessage httpRequestMessage
9898
return httpRequestMessage.Content.Headers.HasHeader(headerName, headerValue);
9999
}
100100

101-
/// <summary>
102-
/// Determines whether the request has content.
103-
/// </summary>
104-
/// <param name="httpRequestMessage">A <see cref="HttpRequestMessage"/> to check for content.</param>
105-
/// <returns>true when the request has content; otherwise, false.</returns>
106-
internal static bool HasContent(this HttpRequestMessage httpRequestMessage)
107-
{
108-
Guard.ThrowIfNull(httpRequestMessage);
109-
110-
return httpRequestMessage.Content != null;
111-
}
112-
113101
/// <summary>
114102
/// Determines whether the request content matches a string pattern.
115103
/// </summary>
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
namespace TestableHttpClient.Tests.HttpRequestMessageAsserterTests;
2+
3+
public sealed class WithContent
4+
{
5+
[Fact]
6+
public void NullContentPattern_ShouldThrowArgumentNullException()
7+
{
8+
HttpRequestMessageAsserter sut = new([]);
9+
10+
var exception = Assert.Throws<ArgumentNullException>(() => sut.WithContent(null!));
11+
12+
Assert.Equal("pattern", exception.ParamName);
13+
}
14+
15+
[Fact]
16+
public void WithNumberOfRequests_NullContentPattern_ShouldThrowArgumentNullException()
17+
{
18+
HttpRequestMessageAsserter sut = new([]);
19+
20+
var exception = Assert.Throws<ArgumentNullException>(() => sut.WithContent(null!, 1));
21+
22+
Assert.Equal("pattern", exception.ParamName);
23+
}
24+
25+
[Fact]
26+
public void EmptyContentPattern_NullContentInRequest_ShouldThrowHttpRequestMessageAssertionException()
27+
{
28+
using HttpRequestMessage request = new();
29+
30+
HttpRequestMessageAsserter sut = new([request]);
31+
32+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent(""));
33+
}
34+
35+
[Fact]
36+
public void WithNumberOfRequests_EmptyContentPattern_NullContentInRequest_ShouldThrowHttpRequestMessageAssertionException()
37+
{
38+
using HttpRequestMessage request = new();
39+
40+
HttpRequestMessageAsserter sut = new([request]);
41+
42+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent("", 1));
43+
}
44+
45+
[Theory]
46+
[InlineData("")]
47+
[InlineData("Some text")]
48+
[InlineData("{\"key\":\"value\"}")]
49+
public void MatchingContent_DoesNotThrow(string content)
50+
{
51+
using HttpRequestMessage request = new()
52+
{
53+
Content = new StringContent(content)
54+
};
55+
56+
HttpRequestMessageAsserter sut = new([request]);
57+
58+
sut.WithContent(content);
59+
}
60+
61+
[Theory]
62+
[InlineData("")]
63+
[InlineData("Some text")]
64+
[InlineData("{\"key\":\"value\"}")]
65+
public void WithMatchingNumberOfRequests_MatchingContent_DoesNotThrow(string content)
66+
{
67+
using HttpRequestMessage request = new()
68+
{
69+
Content = new StringContent(content)
70+
};
71+
72+
HttpRequestMessageAsserter sut = new([request, request]);
73+
74+
sut.WithContent(content, 2);
75+
}
76+
77+
[Theory]
78+
[InlineData("")]
79+
[InlineData("Some text")]
80+
[InlineData("{\"key\":\"value\"}")]
81+
public void WithNotMatchingNumberOfRequests_MatchingContent_ThrowsHttpRequestMessageAssertionException(string content)
82+
{
83+
using HttpRequestMessage request = new()
84+
{
85+
Content = new StringContent(content)
86+
};
87+
88+
HttpRequestMessageAsserter sut = new([request, request]);
89+
90+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent(content, 1));
91+
}
92+
93+
[Theory]
94+
[InlineData("")]
95+
[InlineData("Some text")]
96+
[InlineData("{\"key\":\"value\"}")]
97+
public void NotMatchingContent_ThrowsHttpRequestMessageAssertionException(string content)
98+
{
99+
using HttpRequestMessage request = new()
100+
{
101+
Content = new StringContent("Example content")
102+
};
103+
104+
HttpRequestMessageAsserter sut = new([request]);
105+
106+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent(content));
107+
}
108+
109+
[Theory]
110+
[InlineData("")]
111+
[InlineData("Some text")]
112+
[InlineData("{\"key\":\"value\"}")]
113+
public void WithMatchingNumberOfRequests_NotMatchingContent_ThrowsHttpRequestMessageAssertionException(string content)
114+
{
115+
using HttpRequestMessage request = new()
116+
{
117+
Content = new StringContent("Example content")
118+
};
119+
120+
HttpRequestMessageAsserter sut = new([request, request]);
121+
122+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent(content, 2));
123+
}
124+
125+
[Theory]
126+
[InlineData("*")]
127+
[InlineData("username=*&password=*")]
128+
[InlineData("*admin*")]
129+
public void MatchingPattern_DoesNotThrow(string content)
130+
{
131+
using HttpRequestMessage request = new()
132+
{
133+
Content = new StringContent("username=admin&password=admin")
134+
};
135+
136+
HttpRequestMessageAsserter sut = new([request]);
137+
138+
sut.WithContent(content);
139+
}
140+
141+
[Theory]
142+
[InlineData("*")]
143+
[InlineData("username=*&password=*")]
144+
[InlineData("*admin*")]
145+
public void WithMatchingNumberOfRequests_MatchingPattern_DoesNotThrow(string content)
146+
{
147+
using HttpRequestMessage request = new()
148+
{
149+
Content = new StringContent("username=admin&password=admin")
150+
};
151+
152+
HttpRequestMessageAsserter sut = new([request, request]);
153+
154+
sut.WithContent(content, 2);
155+
}
156+
157+
[Theory]
158+
[InlineData("*")]
159+
[InlineData("username=*&password=*")]
160+
[InlineData("*admin*")]
161+
public void WithNotMatchingNumberOfRequests_MatchingPattern_ThrowsHttpRequestMessageAssertionException(string content)
162+
{
163+
using HttpRequestMessage request = new()
164+
{
165+
Content = new StringContent("username=admin&password=admin")
166+
};
167+
168+
HttpRequestMessageAsserter sut = new([request, request]);
169+
170+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent(content, 1));
171+
}
172+
173+
[Theory]
174+
[InlineData("admin")]
175+
[InlineData("*test*")]
176+
public void NotMatchingPattern_ThrowsHttpRequestMessageAssertionException(string content)
177+
{
178+
using HttpRequestMessage request = new()
179+
{
180+
Content = new StringContent("username=admin&password=admin")
181+
};
182+
183+
HttpRequestMessageAsserter sut = new([request]);
184+
185+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent(content));
186+
}
187+
188+
[Theory]
189+
[InlineData("admin")]
190+
[InlineData("*test*")]
191+
public void WithMatchingNumberOfRequests_NotMatchingPattern_ThrowsHttpRequestMessageAssertionException(string content)
192+
{
193+
using HttpRequestMessage request = new()
194+
{
195+
Content = new StringContent("username=admin&password=admin")
196+
};
197+
198+
HttpRequestMessageAsserter sut = new([request, request]);
199+
200+
Assert.Throws<HttpRequestMessageAssertionException>(() => sut.WithContent(content, 2));
201+
}
202+
}

test/TestableHttpClient.Tests/HttpRequestMessageExtensionsTests/HasContent.cs

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

test/TestableHttpClient.Tests/HttpRequestMessageExtensionsTests/HasContentWithPattern.cs

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

0 commit comments

Comments
 (0)