diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0cdb96..f2dbbd9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: - name: Update Java SDK for SonarQube uses: actions/setup-java@v1 with: - java-version: '11' + java-version: '17' - name: Setup .NET versions uses: actions/setup-dotnet@v1 with: @@ -77,7 +77,7 @@ jobs: with: dotnet-version: | 6.0.x - 7.0.x + 7.0.306 - name: Dump .NET info run: dotnet --info - name: Restore dependencies diff --git a/CHANGELOG.md b/CHANGELOG.md index e4ae980..6309c7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `ShouldHaveMadeRequestsTo(this TestableHttpMessageHandler, string, bool)` and `ShouldHaveMadeRequestsTo(this TestableHttpMessageHandler, string, bool, int)` have been removed. CaseInsensitivity is controlled by the `UriPatternMatchingOptions` that can be set on the `TestableHttpMessageHandler`. - `WithRequestUri(this IHttpRequestMessagesCheck, string, bool)` and `WithRequestUri(this IHttpRequestMessagesCheck, string, bool, int)` have been removed. CaseInsensitivity is controlled by the `UriPatternMatchingOptions` that can be set on the `TestableHttpMessageHandler`. - `WithQueryString` has been removed, since `ShouldHaveMadeRequestTo` and `WithRequestUri` now properly support querystrings. - +- Replaced Moq with NSubstitute in test project because of the SponsorLink dependencies. ## [0.10] - 2022-12-03 ### Deprecated diff --git a/test/Directory.Build.targets b/test/Directory.Build.targets index cebf8da..2801fb0 100644 --- a/test/Directory.Build.targets +++ b/test/Directory.Build.targets @@ -1,9 +1,9 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/test/TestableHttpClient.Tests/HttpRequestMessageExtensionsTests/HasContentHeader.cs b/test/TestableHttpClient.Tests/HttpRequestMessageExtensionsTests/HasContentHeader.cs index 3c68432..8953e98 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessageExtensionsTests/HasContentHeader.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessageExtensionsTests/HasContentHeader.cs @@ -1,5 +1,3 @@ -using System.Net.Http; - namespace TestableHttpClient.Tests; public partial class HttpRequestMessageExtensionsTests diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/Args.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/Args.cs new file mode 100644 index 0000000..48a5742 --- /dev/null +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/Args.cs @@ -0,0 +1,10 @@ + +using NSubstitute; + +namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; + +public static class Args +{ + [System.Diagnostics.CodeAnalysis.SuppressMessage("Non-substitutable member", "NS1004:Argument matcher used with a non-virtual member of a class.", Justification = "This is a custom matcher.")] + public static ref Func AnyPredicate() => ref Arg.Any>(); +} diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/Its.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/Its.cs deleted file mode 100644 index 0c914ac..0000000 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/Its.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Moq; - -namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; - -public static class Its -{ - public static Func AnyPredicate() - { - return It.IsAny>(); - } -} diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContent.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContent.cs index 1ba981e..bfe59fa 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContent.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContent.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -27,42 +27,42 @@ public void WithContent_WithNumberOfRequests_NullCheck_ThrowsArgumentNullExcepti [Fact] public void WithContent_WithoutNumberOfRequests_NullPattern_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContent(null!)); + var exception = Assert.Throws(() => sut.WithContent(null!)); Assert.Equal("pattern", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithContent_WithNumberOfRequests_NullPattern_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContent(null!, 1)); + var exception = Assert.Throws(() => sut.WithContent(null!, 1)); Assert.Equal("pattern", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithContent_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithContent("some content"); + sut.WithContent("some content"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "content 'some content'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "content 'some content'"); } [Fact] public void WithContent_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithContent("some content", 1); + sut.WithContent("some content", 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "content 'some content'")); + sut.Received().WithFilter(Args.AnyPredicate(), (int?)1, "content 'some content'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderName.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderName.cs index 3e52720..eafaaf6 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderName.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderName.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,12 +29,12 @@ public void WithContentHeader_WithNumberOfRequests_NullCheck_ThrowsArgumentNullE [InlineData("")] public void WithContentHeader_WithoutNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContentHeader(headerName)); + var exception = Assert.Throws(() => sut.WithContentHeader(headerName)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -42,31 +42,31 @@ public void WithContentHeader_WithoutNumberOfRequests_NullOrEmptyHeaderName_Thro [InlineData("")] public void WithContentHeader_WithNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContentHeader(headerName, 1)); + var exception = Assert.Throws(() => sut.WithContentHeader(headerName, 1)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithContentHeader_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithContentHeader("Content-Type"); + sut.WithContentHeader("Content-Type"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "content header 'Content-Type'")); + sut.Received().WithFilter(Args.AnyPredicate(), null, "content header 'Content-Type'"); } [Fact] public void WithContentHeader_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithContentHeader("Content-Type", 1); + sut.WithContentHeader("Content-Type", 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "content header 'Content-Type'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "content header 'Content-Type'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderNameAndValue.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderNameAndValue.cs index e505b6a..3e98f90 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderNameAndValue.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithContentHeaderNameAndValue.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,12 +29,12 @@ public void WihtContentHeaderNameAndValue_WithNumberOfRequests_NullCheck_ThrowsA [InlineData("")] public void WithContentHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContentHeader(headerName, "someValue")); + var exception = Assert.Throws(() => sut.WithContentHeader(headerName, "someValue")); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -42,12 +42,12 @@ public void WithContentHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyHea [InlineData("")] public void WithContentHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContentHeader(headerName, "someValue", 1)); + var exception = Assert.Throws(() => sut.WithContentHeader(headerName, "someValue", 1)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -55,12 +55,12 @@ public void WithContentHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyHeader [InlineData("")] public void WithContentHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyValue_ThrowsArgumentNullException(string headerValue) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContentHeader("someHeader", headerValue)); + var exception = Assert.Throws(() => sut.WithContentHeader("someHeader", headerValue)); Assert.Equal("headerValue", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -68,31 +68,31 @@ public void WithContentHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyVal [InlineData("")] public void WithContentHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyValue_ThrowsArgumentNullException(string headerValue) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithContentHeader("someHeader", headerValue, 1)); + var exception = Assert.Throws(() => sut.WithContentHeader("someHeader", headerValue, 1)); Assert.Equal("headerValue", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithContentHeaderNameAndValue_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithContentHeader("someHeader", "someValue"); + sut.WithContentHeader("someHeader", "someValue"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "content header 'someHeader' and value 'someValue'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "content header 'someHeader' and value 'someValue'"); } [Fact] public void WithContentHeaderNameAndValue_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithContentHeader("someHeader", "someValue", 1); + sut.WithContentHeader("someHeader", "someValue", 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "content header 'someHeader' and value 'someValue'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "content header 'someHeader' and value 'someValue'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithFormUrlEncodedContent.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithFormUrlEncodedContent.cs index eb9e43c..096f568 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithFormUrlEncodedContent.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithFormUrlEncodedContent.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -27,43 +27,43 @@ public void WithFormUrlEncodedContent_WithNumberOfRequests_NulCheck_ThrowsArgume [Fact] public void WithFormUrlEncodedContent_WithoutNumberOfRequests_NullNameValueCollection_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithFormUrlEncodedContent(null!)); + var exception = Assert.Throws(() => sut.WithFormUrlEncodedContent(null!)); Assert.Equal("nameValueCollection", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithFormUrlEncodedContent_WithNumberOfRequests_NullNameValueCollection_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithFormUrlEncodedContent(null!, 1)); + var exception = Assert.Throws(() => sut.WithFormUrlEncodedContent(null!, 1)); Assert.Equal("nameValueCollection", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithFormUrlEncodedContent_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithFormUrlEncodedContent(new[] { new KeyValuePair("username", "alice") }); + sut.WithFormUrlEncodedContent(new[] { new KeyValuePair("username", "alice") }); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "form url encoded content 'username=alice'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "form url encoded content 'username=alice'"); } [Fact] public void WithFormUrlEncodedContent_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithFormUrlEncodedContent(new[] { new KeyValuePair("username", "alice") }, 1); + sut.WithFormUrlEncodedContent(new[] { new KeyValuePair("username", "alice") }, 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "form url encoded content 'username=alice'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "form url encoded content 'username=alice'"); } [Fact] diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderName.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderName.cs index d1530f6..8b7dc8c 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderName.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderName.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,12 +29,12 @@ public void WithHeader_WithNumberOfRequests_NullCheck_ThrowsArgumentNullExceptio [InlineData("")] public void WithHeader_WithoutNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHeader(headerName)); + var exception = Assert.Throws(() => sut.WithHeader(headerName)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -42,31 +42,31 @@ public void WithHeader_WithoutNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgum [InlineData("")] public void WithHeader_WithNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHeader(headerName, 1)); + var exception = Assert.Throws(() => sut.WithHeader(headerName, 1)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithHeader_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHeader("Content-Type"); + sut.WithHeader("Content-Type"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "header 'Content-Type'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "header 'Content-Type'"); } [Fact] public void WithHeader_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHeader("Content-Type", 1); + sut.WithHeader("Content-Type", 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "header 'Content-Type'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "header 'Content-Type'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderNameAndValue.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderNameAndValue.cs index 6e9c468..e05a434 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderNameAndValue.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHeaderNameAndValue.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,12 +29,12 @@ public void WithHeaderNameAndValue_WithNumberOfRequests_NullCheck_ThrowsArgument [InlineData("")] public void WithHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHeader(headerName, "someValue")); + var exception = Assert.Throws(() => sut.WithHeader(headerName, "someValue")); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -42,12 +42,12 @@ public void WithHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyHeaderName [InlineData("")] public void WithHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHeader(headerName, "someValue", 1)); + var exception = Assert.Throws(() => sut.WithHeader(headerName, "someValue", 1)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -55,12 +55,12 @@ public void WithHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyHeaderName_Th [InlineData("")] public void WithHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyValue_ThrowsArgumentNullException(string headerValue) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHeader("someHeader", headerValue)); + var exception = Assert.Throws(() => sut.WithHeader("someHeader", headerValue)); Assert.Equal("headerValue", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -68,31 +68,31 @@ public void WithHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyValue_Thro [InlineData("")] public void WithHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyValue_ThrowsArgumentNullException(string headerValue) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHeader("someHeader", headerValue, 1)); + var exception = Assert.Throws(() => sut.WithHeader("someHeader", headerValue, 1)); Assert.Equal("headerValue", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithHeaderNameAndValue_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHeader("someHeader", "someValue"); + sut.WithHeader("someHeader", "someValue"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "header 'someHeader' and value 'someValue'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "header 'someHeader' and value 'someValue'"); } [Fact] public void WithHeaderNameAndValue_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHeader("someHeader", "someValue", 1); + sut.WithHeader("someHeader", "someValue", 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "header 'someHeader' and value 'someValue'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "header 'someHeader' and value 'someValue'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpMethod.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpMethod.cs index 12cd9cd..0e93001 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpMethod.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpMethod.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -27,42 +27,42 @@ public void WithHttpMethod_WithNumberOfRequests_NullCheck_ThrowsArgumentNullExce [Fact] public void WithHttpMethod_WithoutNumberOfRequests_NullHttpMethod_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHttpMethod(null!)); + var exception = Assert.Throws(() => sut.WithHttpMethod(null!)); Assert.Equal("httpMethod", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithHttpMethod_WithNumberOfRequests_NullHttpMethod_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHttpMethod(null!, 1)); + var exception = Assert.Throws(() => sut.WithHttpMethod(null!, 1)); Assert.Equal("httpMethod", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithHttpMethod_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHttpMethod(HttpMethod.Get); + sut.WithHttpMethod(HttpMethod.Get); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "HTTP Method 'GET'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "HTTP Method 'GET'"); } [Fact] public void WithHttpMethod_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHttpMethod(HttpMethod.Get, 1); + sut.WithHttpMethod(HttpMethod.Get, 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "HTTP Method 'GET'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "HTTP Method 'GET'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpVersion.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpVersion.cs index 0c205f2..331be92 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpVersion.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithHttpVersion.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -25,42 +25,42 @@ public void WithHttpVersion_WithNumberOfRequests_NullCheck_ThrowsArgumentNulLExc [Fact] public void WithHttpVersion_WithoutNumberOfRequests_NullHttpVersion_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHttpVersion(null!)); + var exception = Assert.Throws(() => sut.WithHttpVersion(null!)); Assert.Equal("httpVersion", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithHttpVersion_WithNumberOfRequests_NullHttpVersion_ThrowsArgumentNullException() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithHttpVersion(null!, 1)); + var exception = Assert.Throws(() => sut.WithHttpVersion(null!, 1)); Assert.Equal("httpVersion", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithHttpVersion_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHttpVersion(HttpVersion.Version11); + sut.WithHttpVersion(HttpVersion.Version11); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "HTTP Version '1.1'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "HTTP Version '1.1'"); } [Fact] public void WithHttpVersion_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithHttpVersion(HttpVersion.Version11, 1); + sut.WithHttpVersion(HttpVersion.Version11, 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "HTTP Version '1.1'")); + sut.Received().WithFilter(Args.AnyPredicate(), (int?)1, "HTTP Version '1.1'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithJsonContent.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithJsonContent.cs index b095318..0eb4dbc 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithJsonContent.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithJsonContent.cs @@ -1,6 +1,6 @@ using System.Text.Json; -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,50 +29,50 @@ public void WithJsonContent_WithNumberOfRequests_NullChecker_ThrowsArgumentNullE [Fact] public void WithJsonContent_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); - sut.SetupGet(x => x.Options).Returns(new TestableHttpMessageHandlerOptions()); + IHttpRequestMessagesCheck sut = Substitute.For(); + sut.Options.Returns(new TestableHttpMessageHandlerOptions()); - sut.Object.WithJsonContent(null); + sut.WithJsonContent(null); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "json content 'null'")); - sut.Verify(x => x.Options, Times.Once()); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "json content 'null'"); + _ = sut.Received(1).Options; } [Fact] public void WithJsonContent_WithoutNumberOfRequestsWithCustomJsonSerializerOptions_DoesnotCallOptionsFromCheck() { - Mock sut = new(); - sut.SetupGet(x => x.Options).Returns(new TestableHttpMessageHandlerOptions()); + IHttpRequestMessagesCheck sut = Substitute.For(); + sut.Options.Returns(new TestableHttpMessageHandlerOptions()); - sut.Object.WithJsonContent(null, new JsonSerializerOptions()); + sut.WithJsonContent(null, new JsonSerializerOptions()); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "json content 'null'")); - sut.Verify(x => x.Options, Times.Never()); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "json content 'null'"); + _ = sut.DidNotReceive().Options; } [Fact] public void WithJsonContent_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); - sut.SetupGet(x => x.Options).Returns(new TestableHttpMessageHandlerOptions()); + IHttpRequestMessagesCheck sut = Substitute.For(); + sut.Options.Returns(new TestableHttpMessageHandlerOptions()); - sut.Object.WithJsonContent(null, 1); + sut.WithJsonContent(null, 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "json content 'null'")); - sut.Verify(x => x.Options, Times.Once()); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "json content 'null'"); + _ = sut.Received(1).Options; } [Fact] public void WithJsonContent_WithNumberOfRequestsAndJsonSerializerOptions_CallsWithCorrectly() { - Mock sut = new(); - sut.SetupGet(x => x.Options).Returns(new TestableHttpMessageHandlerOptions()); + IHttpRequestMessagesCheck sut = Substitute.For(); + sut.Options.Returns(new TestableHttpMessageHandlerOptions()); - sut.Object.WithJsonContent(null, new JsonSerializerOptions(), 1); + sut.WithJsonContent(null, new JsonSerializerOptions(), 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "json content 'null'")); - sut.Verify(x => x.Options, Times.Never()); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "json content 'null'"); + _ = sut.DidNotReceive().Options; } [Fact] diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithQueryString.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithQueryString.cs index cb590fe..6e9aceb 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithQueryString.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithQueryString.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -28,7 +28,7 @@ public void WithQueryString_WithNumberOfRequests_NullCheck_ReturnsNull() [Fact] public void WithQueryString_WithoutNumberOfRequests_ReturnsSut() { - IHttpRequestMessagesCheck sut = Mock.Of(); + IHttpRequestMessagesCheck sut = Substitute.For(); IHttpRequestMessagesCheck result = sut.WithQueryString(""); @@ -38,7 +38,7 @@ public void WithQueryString_WithoutNumberOfRequests_ReturnsSut() [Fact] public void WithQueryString_WithNumberOfRequests_ReturnsSut() { - IHttpRequestMessagesCheck sut = Mock.Of(); + IHttpRequestMessagesCheck sut = Substitute.For(); IHttpRequestMessagesCheck result = sut.WithQueryString("", 2); diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderName.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderName.cs index 6b8dc60..e2e2701 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderName.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderName.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,12 +29,12 @@ public void WithRequestHeader_WithNumberOfRequests_NullCheck_ThrowsArgumentNullE [InlineData("")] public void WithRequestHeader_WithoutNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithRequestHeader(headerName)); + var exception = Assert.Throws(() => sut.WithRequestHeader(headerName)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -42,31 +42,31 @@ public void WithRequestHeader_WithoutNumberOfRequests_NullOrEmptyHeaderName_Thro [InlineData("")] public void WithRequestHeader_WithNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithRequestHeader(headerName, 1)); + var exception = Assert.Throws(() => sut.WithRequestHeader(headerName, 1)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithRequestHeader_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithRequestHeader("api-version"); + sut.WithRequestHeader("api-version"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "request header 'api-version'")); + sut.Received().WithFilter(Args.AnyPredicate(), null, "request header 'api-version'"); } [Fact] public void WithRequestHeader_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithRequestHeader("api-version", 1); + sut.WithRequestHeader("api-version", 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "request header 'api-version'")); + sut.Received().WithFilter(Args.AnyPredicate(), (int?)1, "request header 'api-version'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderNameAndValue.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderNameAndValue.cs index d755561..68257a8 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderNameAndValue.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestHeaderNameAndValue.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,12 +29,12 @@ public void WithRequestHeaderNameAndValue_WithNumberOfRequests_NullCheck_ThrowsA [InlineData("")] public void WithRequestHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithRequestHeader(headerName, "someValue")); + var exception = Assert.Throws(() => sut.WithRequestHeader(headerName, "someValue")); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -42,12 +42,12 @@ public void WithRequestHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyHea [InlineData("")] public void WithRequestHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyHeaderName_ThrowsArgumentNullException(string headerName) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithRequestHeader(headerName, "someValue", 1)); + var exception = Assert.Throws(() => sut.WithRequestHeader(headerName, "someValue", 1)); Assert.Equal("headerName", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -55,12 +55,12 @@ public void WithRequestHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyHeader [InlineData("")] public void WithRequestHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyValue_ThrowsArgumentNullException(string headerValue) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithRequestHeader("someHeader", headerValue)); + var exception = Assert.Throws(() => sut.WithRequestHeader("someHeader", headerValue)); Assert.Equal("headerValue", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Theory] @@ -68,31 +68,31 @@ public void WithRequestHeaderNameAndValue_WithoutNumberOfRequests_NullOrEmptyVal [InlineData("")] public void WithRequestHeaderNameAndValue_WithNumberOfRequests_NullOrEmptyValue_ThrowsArgumentNullException(string headerValue) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithRequestHeader("someHeader", headerValue, 1)); + var exception = Assert.Throws(() => sut.WithRequestHeader("someHeader", headerValue, 1)); Assert.Equal("headerValue", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithRequestHeaderNameAndValue_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithRequestHeader("someHeader", "someValue"); + sut.WithRequestHeader("someHeader", "someValue"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "request header 'someHeader' and value 'someValue'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "request header 'someHeader' and value 'someValue'"); } [Fact] public void WithRequestHeaderNameAndValue_WithNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithRequestHeader("someHeader", "someValue", 1); + sut.WithRequestHeader("someHeader", "someValue", 1); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), (int?)1, "request header 'someHeader' and value 'someValue'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), (int?)1, "request header 'someHeader' and value 'someValue'"); } } diff --git a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestUri.cs b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestUri.cs index 4e546c4..83211d6 100644 --- a/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestUri.cs +++ b/test/TestableHttpClient.Tests/HttpRequestMessagesCheckExtensionsTests/WithRequestUri.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests.HttpRequestMessagesCheckExtensionsTests; @@ -29,29 +29,29 @@ public void WithRequestUri_WithNumberOfRequests_NullCheck_ThrowsArgumentNullExce [InlineData("")] public void WithRequestUri_NullOrEmptyPattern_ThrowsArgumentNullException(string pattern) { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - var exception = Assert.Throws(() => sut.Object.WithRequestUri(pattern)); + var exception = Assert.Throws(() => sut.WithRequestUri(pattern)); Assert.Equal("pattern", exception.ParamName); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), It.IsAny(), It.IsAny()), Times.Never()); + sut.DidNotReceive().WithFilter(Args.AnyPredicate(), Arg.Any(), Arg.Any()); } [Fact] public void WithRequestUri_WithoutNumberOfRequests_CallsWithCorrectly() { - Mock sut = new(); + IHttpRequestMessagesCheck sut = Substitute.For(); - sut.Object.WithRequestUri("https://example.com/"); + sut.WithRequestUri("https://example.com/"); - sut.Verify(x => x.WithFilter(Its.AnyPredicate(), null, "uri pattern 'https://example.com/'")); + sut.Received(1).WithFilter(Args.AnyPredicate(), null, "uri pattern 'https://example.com/'"); } [Fact] [Obsolete("Please use an overload without the 'ignoreCase', since ignoring casing is now controlled globally.", true)] public void WithRequestUri_WithoutNumberOfRequestsAndNotIgnoringCase_CallsWithCorrectly() { - IHttpRequestMessagesCheck sut = Mock.Of(); + IHttpRequestMessagesCheck sut = Substitute.For(); var result = sut.WithRequestUri("https://example.com/", ignoreCase: false); @@ -62,7 +62,7 @@ public void WithRequestUri_WithoutNumberOfRequestsAndNotIgnoringCase_CallsWithCo [Obsolete("Please use an overload without the 'ignoreCase', since ignoring casing is now controlled globally.", true)] public void WithRequestUri_WithNumberOfRequestsAndNotIgnoringCase_CallsWithCorrectly() { - IHttpRequestMessagesCheck sut = Mock.Of(); + IHttpRequestMessagesCheck sut = Substitute.For(); var result = sut.WithRequestUri("https://example.com/", ignoreCase: false, 2); diff --git a/test/TestableHttpClient.Tests/Response/SelectableResponseTests.cs b/test/TestableHttpClient.Tests/Response/SelectableResponseTests.cs index c5cb71f..01b6c3e 100644 --- a/test/TestableHttpClient.Tests/Response/SelectableResponseTests.cs +++ b/test/TestableHttpClient.Tests/Response/SelectableResponseTests.cs @@ -1,6 +1,4 @@ -using System.Threading; - -using TestableHttpClient.Response; +using TestableHttpClient.Response; using static TestableHttpClient.Responses; diff --git a/test/TestableHttpClient.Tests/Response/TextResponseTests.cs b/test/TestableHttpClient.Tests/Response/TextResponseTests.cs index 71f2239..8e9ab41 100644 --- a/test/TestableHttpClient.Tests/Response/TextResponseTests.cs +++ b/test/TestableHttpClient.Tests/Response/TextResponseTests.cs @@ -1,6 +1,4 @@ -using System.Threading; - -using TestableHttpClient.Response; +using TestableHttpClient.Response; namespace TestableHttpClient.Tests.Response; diff --git a/test/TestableHttpClient.Tests/TestableHttpClient.Tests.csproj b/test/TestableHttpClient.Tests/TestableHttpClient.Tests.csproj index e198345..6f6a2f8 100644 --- a/test/TestableHttpClient.Tests/TestableHttpClient.Tests.csproj +++ b/test/TestableHttpClient.Tests/TestableHttpClient.Tests.csproj @@ -9,7 +9,11 @@ - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClient.cs b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClient.cs index 47ee6c3..c6b8b47 100644 --- a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClient.cs +++ b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClient.cs @@ -40,7 +40,7 @@ public void CreateClient_NullDelegateHandler_ThrowsArgumentNullException() var handlerField = privateFields.FirstOrDefault(x => x.FieldType == typeof(HttpMessageHandler)); if (handlerField == null) { - Assert.True(false, "Can't find the private HttpMessageHandler field on HttpClient."); + Assert.Fail("Can't find the private HttpMessageHandler field on HttpClient."); return null; } return handlerField.GetValue(client) as HttpMessageHandler; diff --git a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurer.cs b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurer.cs index 7c67a50..ecce392 100644 --- a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurer.cs +++ b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurer.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests; @@ -42,10 +42,10 @@ static void configureClient(HttpClient client) { } public void CreateClientWithConfigurer_CallsConfigureClientWithClientToReturn() { using TestableHttpMessageHandler sut = new(); - Mock> configureClient = new(); + Action configureClient = Substitute.For>(); - using var client = sut.CreateClient(configureClient.Object); + using var client = sut.CreateClient(configureClient); - configureClient.Verify(x => x.Invoke(client), Times.Once); + configureClient.Received(1).Invoke(client); } } diff --git a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurerAndHttpMessageHandlers.cs b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurerAndHttpMessageHandlers.cs index 4812755..3e92db2 100644 --- a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurerAndHttpMessageHandlers.cs +++ b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerExtensionsTests/CreateClientWithConfigurerAndHttpMessageHandlers.cs @@ -1,4 +1,4 @@ -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests; @@ -43,12 +43,12 @@ static void configureClient(HttpClient _) { } public void CreateClientWithConfigurerAndHtppMessageHandlers_CallsConfigureClientWithClientToReturn() { using TestableHttpMessageHandler sut = new(); - var configureClient = Mock.Of>(); + var configureClient = Substitute.For>(); var handlers = Enumerable.Empty(); using var client = sut.CreateClient(configureClient, handlers); - Mock.Get(configureClient).Verify(x => x.Invoke(client), Times.Once); + configureClient.Received(1).Invoke(client); } [Fact] @@ -58,8 +58,8 @@ public void CreateClientWithConfigurerAndHttpMessageHandlers_WhenHttpMessageHand static void configureClient(HttpClient _) { } IEnumerable handlers = new DelegatingHandler[] { - Mock.Of(), - Mock.Of() + Substitute.For(), + Substitute.For() }; using var client = sut.CreateClient(configureClient, handlers); diff --git a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerTests.cs b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerTests.cs index 298844d..2cce663 100644 --- a/test/TestableHttpClient.Tests/TestableHttpMessageHandlerTests.cs +++ b/test/TestableHttpClient.Tests/TestableHttpMessageHandlerTests.cs @@ -1,7 +1,7 @@ using System.Collections.Concurrent; using System.Threading; -using Moq; +using NSubstitute; namespace TestableHttpClient.Tests; @@ -40,12 +40,11 @@ public async Task SendAsync_WhenMultipleRequestsAreMade_AllRequestsAreLogged() [Fact] public async Task SendAsync_ByDefault_CallsExecutAsyncOnIResponse() { - IResponse mockedResponse = Mock.Of(); + IResponse mockedResponse = Substitute.For(); HttpResponseContext? context = null; - Mock.Get(mockedResponse) - .Setup(x => x.ExecuteAsync(It.IsAny(), It.IsAny())) - .Callback((HttpResponseContext c, CancellationToken _) => context = c) - .Returns(Task.CompletedTask); + mockedResponse.ExecuteAsync(Arg.Any(), Arg.Any()) + .Returns(Task.CompletedTask) + .AndDoes(x => context = x[0] as HttpResponseContext); using TestableHttpMessageHandler sut = new(); sut.RespondWith(mockedResponse);