11using System ;
22using System . Linq ;
3+ using System . Net ;
34using System . Net . Http ;
45
56using Xunit ;
@@ -8,11 +9,25 @@ namespace HttpClientTestHelpers.Tests
89{
910 public class HttpRequestMessageAsserterTests
1011 {
11- #nullable disable
1212 [ Fact ]
1313 public void Constructor_NullRequestList_ThrowsArgumentNullException ( )
1414 {
15+ #nullable disable
1516 Assert . Throws < ArgumentNullException > ( ( ) => new HttpRequestMessageAsserter ( null ) ) ;
17+ #nullable restore
18+ }
19+
20+ #nullable disable
21+ [ Theory ]
22+ [ InlineData ( null ) ]
23+ [ InlineData ( "" ) ]
24+ public void WithUriPattern_NullOrEmptyPattern_ThrowsArgumentNullException ( string pattern )
25+ {
26+ var sut = new HttpRequestMessageAsserter ( Enumerable . Empty < HttpRequestMessage > ( ) ) ;
27+
28+ var exception = Assert . Throws < ArgumentNullException > ( ( ) => sut . WithUriPattern ( pattern ) ) ;
29+
30+ Assert . Equal ( "pattern" , exception . ParamName ) ;
1631 }
1732#nullable restore
1833
@@ -51,20 +66,20 @@ public void WithUriPattern_RequestWithStarPatternAndNoRequests_ThrowsHttpRequest
5166 Assert . Equal ( "Expected at least one request to be made, but no requests were made." , exception . Message ) ;
5267 }
5368
54- #nullable disable
5569 [ Fact ]
56- public void WithHttpmethod_NullHttpMethod_ThrowsArgumentNullException ( )
70+ public void WithHttpMethod_NullHttpMethod_ThrowsArgumentNullException ( )
5771 {
5872 var sut = new HttpRequestMessageAsserter ( Enumerable . Empty < HttpRequestMessage > ( ) ) ;
5973
74+ #nullable disable
6075 var exception = Assert . Throws < ArgumentNullException > ( ( ) => sut . WithHttpMethod ( null ) ) ;
76+ #nullable restore
6177
6278 Assert . Equal ( "httpMethod" , exception . ParamName ) ;
6379 }
64- #nullable restore
6580
6681 [ Fact ]
67- public void WithHttpmethod_NoRequests_ThrowsHttpRequestMessageAssertionExceptionWithSpecificMessage ( )
82+ public void WithHttpMethod_NoRequests_ThrowsHttpRequestMessageAssertionExceptionWithSpecificMessage ( )
6883 {
6984 var sut = new HttpRequestMessageAsserter ( Enumerable . Empty < HttpRequestMessage > ( ) ) ;
7085
@@ -74,7 +89,7 @@ public void WithHttpmethod_NoRequests_ThrowsHttpRequestMessageAssertionException
7489 }
7590
7691 [ Fact ]
77- public void WithHttpmethod_RequestsWithIncorrectHttpMethod_ThrowsHttpRequestMessageAssertionExceptionWithSpecificMessage ( )
92+ public void WithHttpMethod_RequestsWithIncorrectHttpMethod_ThrowsHttpRequestMessageAssertionExceptionWithSpecificMessage ( )
7893 {
7994 var sut = new HttpRequestMessageAsserter ( new [ ] { new HttpRequestMessage ( HttpMethod . Post , new Uri ( "https://example.com" ) ) } ) ;
8095
@@ -93,5 +108,48 @@ public void WithHttpMethod_RequestsWithCorrectMethod_ReturnsHttpRequestMessageAs
93108 Assert . NotNull ( result ) ;
94109 Assert . IsType < HttpRequestMessageAsserter > ( result ) ;
95110 }
111+
112+ [ Fact ]
113+ public void WithHttpVersion_NullHttpVersion_ThrowsArgumentNullException ( )
114+ {
115+ var sut = new HttpRequestMessageAsserter ( Enumerable . Empty < HttpRequestMessage > ( ) ) ;
116+
117+ #nullable disable
118+ var exception = Assert . Throws < ArgumentNullException > ( ( ) => sut . WithHttpVersion ( null ) ) ;
119+ #nullable restore
120+
121+ Assert . Equal ( "httpVersion" , exception . ParamName ) ;
122+ }
123+
124+ [ Fact ]
125+ public void WithHttpVersion_NoRequests_ThrowsHttpRequestMessageAssertionExceptionWithSpecificMessage ( )
126+ {
127+ var sut = new HttpRequestMessageAsserter ( Enumerable . Empty < HttpRequestMessage > ( ) ) ;
128+
129+ var exception = Assert . Throws < HttpRequestMessageAssertionException > ( ( ) => sut . WithHttpVersion ( HttpVersion . Version11 ) ) ;
130+
131+ Assert . Equal ( "Expected at least one request to be made with HTTP Version '1.1', but no requests were made." , exception . Message ) ;
132+ }
133+
134+ [ Fact ]
135+ public void WithHttpVersion_RequestsWithIncorrectHttpVersion_ThrowsHttpRequestMessageAssertionExceptionWithSpecificMessage ( )
136+ {
137+ var sut = new HttpRequestMessageAsserter ( new [ ] { new HttpRequestMessage { Version = HttpVersion . Version20 } } ) ;
138+
139+ var exception = Assert . Throws < HttpRequestMessageAssertionException > ( ( ) => sut . WithHttpVersion ( HttpVersion . Version11 ) ) ;
140+
141+ Assert . Equal ( "Expected at least one request to be made with HTTP Version '1.1', but no requests were made." , exception . Message ) ;
142+ }
143+
144+ [ Fact ]
145+ public void WithHttpVersion_RequestsWithCorrectVersion_ReturnsHttpRequestMessageAsserter ( )
146+ {
147+ var sut = new HttpRequestMessageAsserter ( new [ ] { new HttpRequestMessage { Version = HttpVersion . Version11 } } ) ;
148+
149+ var result = sut . WithHttpVersion ( HttpVersion . Version11 ) ;
150+
151+ Assert . NotNull ( result ) ;
152+ Assert . IsType < HttpRequestMessageAsserter > ( result ) ;
153+ }
96154 }
97155}
0 commit comments