diff --git a/.editorconfig b/.editorconfig index 92ed11e..7fb01f9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -91,6 +91,7 @@ dotnet_naming_style.prefix_underscore.required_prefix = _ [*.cs] csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:suggestion +csharp_style_prefer_primary_constructors = false # Only use "var" when it's obvious what the variable type is csharp_style_var_for_built_in_types = false:warning @@ -157,3 +158,6 @@ csharp_space_between_square_brackets = false [*.{xml,csproj,targets,props,json,yml}] indent_size = 2 indent_style = space + +[*.{json,yml}] +end_of_line = lf diff --git a/test/Cloudflare.Tests/Auth/ApiKeyAuthenticationTest.cs b/test/Cloudflare.Tests/Auth/ApiKeyAuthenticationTest.cs index 51ea1fc..940faab 100644 --- a/test/Cloudflare.Tests/Auth/ApiKeyAuthenticationTest.cs +++ b/test/Cloudflare.Tests/Auth/ApiKeyAuthenticationTest.cs @@ -2,7 +2,7 @@ using System.Net.Http; using AMWD.Net.Api.Cloudflare; -namespace Cloudflare.Core.Tests.Auth +namespace Cloudflare.Tests.Auth { [TestClass] public class ApiKeyAuthenticationTest @@ -32,48 +32,39 @@ namespace Cloudflare.Core.Tests.Auth [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldArgumentNullExceptionForEmailAddress(string emailAddress) { // Arrange string apiKey = "some-api-key"; - // Act - new ApiKeyAuthentication(emailAddress, apiKey); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => new ApiKeyAuthentication(emailAddress, apiKey)); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldArgumentNullExceptionForApiKey(string apiKey) { // Arrange string emailAddress = "test@example.com"; - // Act - new ApiKeyAuthentication(emailAddress, apiKey); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => new ApiKeyAuthentication(emailAddress, apiKey)); } [TestMethod] [DataRow("test")] [DataRow("test@example")] [DataRow("example.com")] - [ExpectedException(typeof(ArgumentException))] public void ShouldArgumentExceptionForInvalidEmailAddress(string emailAddress) { // Arrange string apiKey = "some-api-key"; - // Act - new ApiKeyAuthentication(emailAddress, apiKey); - - // Assert - ArgumentException + // Act & Assert + Assert.ThrowsExactly(() => new ApiKeyAuthentication(emailAddress, apiKey)); } } } diff --git a/test/Cloudflare.Tests/Auth/ApiTokenAuthenticationTest.cs b/test/Cloudflare.Tests/Auth/ApiTokenAuthenticationTest.cs index 4143235..72c1a32 100644 --- a/test/Cloudflare.Tests/Auth/ApiTokenAuthenticationTest.cs +++ b/test/Cloudflare.Tests/Auth/ApiTokenAuthenticationTest.cs @@ -1,7 +1,7 @@ using System.Net.Http; using AMWD.Net.Api.Cloudflare; -namespace Cloudflare.Core.Tests.Auth +namespace Cloudflare.Tests.Auth { [TestClass] public class ApiTokenAuthenticationTest @@ -29,15 +29,12 @@ namespace Cloudflare.Core.Tests.Auth [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldArgumentNullExceptionForEmailAddress(string apiToken) { // Arrange - // Act - new ApiTokenAuthentication(apiToken); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => new ApiTokenAuthentication(apiToken)); } } } diff --git a/test/Cloudflare.Tests/CloudflareClientTest.cs b/test/Cloudflare.Tests/CloudflareClientTest.cs index 63f3bc4..3d10a14 100644 --- a/test/Cloudflare.Tests/CloudflareClientTest.cs +++ b/test/Cloudflare.Tests/CloudflareClientTest.cs @@ -5,7 +5,7 @@ using AMWD.Net.Api.Cloudflare; using Moq; using Moq.Protected; -namespace Cloudflare.Core.Tests +namespace Cloudflare.Tests { [TestClass] public class CloudflareClientTest @@ -72,15 +72,15 @@ namespace Cloudflare.Core.Tests } [TestMethod] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldThrowArgumentNullOnMissingAuthentication() { // Arrange - // Act - using var client = new CloudflareClient((IAuthentication)null); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => + { + using var client = new CloudflareClient((IAuthentication)null); + }); } [TestMethod] @@ -150,7 +150,6 @@ namespace Cloudflare.Core.Tests } [TestMethod] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldThrowArgumentNullForBaseUrlOnAssertClientOptions() { // Arrange @@ -158,14 +157,14 @@ namespace Cloudflare.Core.Tests .Setup(o => o.BaseUrl) .Returns((string)null); - // Act - var client = GetClient(); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => + { + var client = GetClient(); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public void ShouldThrowArgumentOutOfRangeForTimeoutOnAssertClientOptions() { // Arrange @@ -173,16 +172,16 @@ namespace Cloudflare.Core.Tests .Setup(o => o.Timeout) .Returns(TimeSpan.Zero); - // Act - var client = GetClient(); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + Assert.ThrowsExactly(() => + { + var client = GetClient(); + }); } [TestMethod] [DataRow(-1)] [DataRow(11)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public void ShouldThrowArgumentOutOfRangeForMaxRetriesOnAssertClientOptions(int maxRetries) { // Arrange @@ -190,14 +189,14 @@ namespace Cloudflare.Core.Tests .Setup(o => o.MaxRetries) .Returns(maxRetries); - // Act - var client = GetClient(); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + Assert.ThrowsExactly(() => + { + var client = GetClient(); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldThrowArgumentNullForUseProxyOnAssertClientOptions() { // Arrange @@ -205,10 +204,11 @@ namespace Cloudflare.Core.Tests .Setup(o => o.UseProxy) .Returns(true); - // Act - var client = GetClient(); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => + { + var client = GetClient(); + }); } private void VerifyDefault() diff --git a/test/Cloudflare.Tests/CloudflareClientTests/DeleteAsyncTest.cs b/test/Cloudflare.Tests/CloudflareClientTests/DeleteAsyncTest.cs index 41cab17..b30896a 100644 --- a/test/Cloudflare.Tests/CloudflareClientTests/DeleteAsyncTest.cs +++ b/test/Cloudflare.Tests/CloudflareClientTests/DeleteAsyncTest.cs @@ -12,11 +12,13 @@ using AMWD.Net.Api.Cloudflare; using Moq; using Moq.Protected; -namespace Cloudflare.Core.Tests.CloudflareClientTests +namespace Cloudflare.Tests.CloudflareClientTests { [TestClass] public class DeleteAsyncTest { + public TestContext TestContext { get; set; } + private const string BaseUrl = "http://localhost/api/v4/"; private HttpMessageHandlerMock _httpHandlerMock; @@ -44,46 +46,46 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(ObjectDisposedException))] public async Task ShouldThrowDisposed() { // Arrange var client = GetClient() as CloudflareClient; client.Dispose(); - // Act - await client.DeleteAsync("test"); - - // Assert - ObjectDisposedException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.DeleteAsync("test", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullOnRequestPath(string path) { // Arrange var client = GetClient(); - // Act - await client.DeleteAsync(path); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.DeleteAsync(path, cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentOnRequestPath() { // Arrange var client = GetClient(); - // Act - await client.DeleteAsync("foo?bar=baz"); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.DeleteAsync("foo?bar=baz", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -99,7 +101,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.DeleteAsync("test"); + var response = await client.DeleteAsync("test", cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -108,21 +110,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Delete, callback.Method); Assert.AreEqual("http://localhost/api/v4/test", callback.Url); Assert.IsNull(callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -154,7 +156,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests try { // Act - await client.DeleteAsync("foo"); + await client.DeleteAsync("foo", cancellationToken: TestContext.CancellationTokenSource.Token); Assert.Fail(); } catch (AuthenticationException ex) @@ -179,7 +181,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.DeleteAsync("some-awesome-path"); + var response = await client.DeleteAsync("some-awesome-path", cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -190,14 +192,14 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.AreEqual("This is an awesome text ;-)", response.Result); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Delete, callback.Method); Assert.AreEqual("http://localhost/api/v4/some-awesome-path?bar=08%2F15", callback.Url); Assert.IsNull(callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -223,7 +225,6 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(JsonReaderException))] public async Task ShouldThrowExceptionOnInvalidResponse() { // Arrange @@ -235,8 +236,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - // Act - await client.DeleteAsync("some-path"); + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.DeleteAsync("some-path", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } private void VerifyDefaults() diff --git a/test/Cloudflare.Tests/CloudflareClientTests/GetAsyncTest.cs b/test/Cloudflare.Tests/CloudflareClientTests/GetAsyncTest.cs index 2506c09..7a513e4 100644 --- a/test/Cloudflare.Tests/CloudflareClientTests/GetAsyncTest.cs +++ b/test/Cloudflare.Tests/CloudflareClientTests/GetAsyncTest.cs @@ -12,11 +12,13 @@ using AMWD.Net.Api.Cloudflare; using Moq; using Moq.Protected; -namespace Cloudflare.Core.Tests.CloudflareClientTests +namespace Cloudflare.Tests.CloudflareClientTests { [TestClass] public class GetAsyncTest { + public TestContext TestContext { get; set; } + private const string BaseUrl = "http://localhost/api/v4/"; private HttpMessageHandlerMock _httpHandlerMock; @@ -44,46 +46,46 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(ObjectDisposedException))] public async Task ShouldThrowDisposed() { // Arrange var client = GetClient() as CloudflareClient; client.Dispose(); - // Act - await client.GetAsync("/test"); - - // Assert - ObjectDisposedException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.GetAsync("/test", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullOnRequestPath(string path) { // Arrange var client = GetClient(); - // Act - await client.GetAsync(path); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.GetAsync(path, cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentOnRequestPath() { // Arrange var client = GetClient(); - // Act - await client.GetAsync("/foo?bar=baz"); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.GetAsync("/foo?bar=baz", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -99,7 +101,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.GetAsync("test"); + var response = await client.GetAsync("test", cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -108,21 +110,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Get, callback.Method); Assert.AreEqual("http://localhost/api/v4/test", callback.Url); Assert.IsNull(callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -154,7 +156,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests try { // Act - await client.GetAsync("foo"); + await client.GetAsync("foo", cancellationToken: TestContext.CancellationTokenSource.Token); Assert.Fail(); } catch (AuthenticationException ex) @@ -182,7 +184,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests try { // Act - await client.GetAsync("foo"); + await client.GetAsync("foo", cancellationToken: TestContext.CancellationTokenSource.Token); Assert.Fail(); } catch (AuthenticationException ex) @@ -196,7 +198,6 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests [TestMethod] [DataRow(HttpStatusCode.Unauthorized)] [DataRow(HttpStatusCode.Forbidden)] - [ExpectedException(typeof(CloudflareException))] public async Task ShouldThrowCloudflareExceptionOnStatusCodeWhenDeserializeFails(HttpStatusCode statusCode) { // Arrange @@ -208,10 +209,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - // Act - await client.GetAsync("foo"); - - // Assert - CloudflareException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.GetAsync("foo", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -228,7 +230,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.GetAsync("some-awesome-path", new TestFilter()); + var response = await client.GetAsync("some-awesome-path", new TestFilter(), TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -239,14 +241,14 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.AreEqual("This is an awesome text ;-)", response.Result); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Get, callback.Method); Assert.AreEqual("http://localhost/api/v4/some-awesome-path?bar=08%2F15&test=filter-text", callback.Url); Assert.IsNull(callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -272,7 +274,6 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(JsonReaderException))] public async Task ShouldThrowExceptionOnInvalidResponse() { // Arrange @@ -284,12 +285,14 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - // Act - await client.GetAsync("some-path"); + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.GetAsync("some-path", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(CloudflareException))] public async Task ShouldThrowCloudflareExceptionWhenDeserializeFails() { // Arrange @@ -301,10 +304,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - // Act - await client.GetAsync("foo"); - - // Assert - CloudflareException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.GetAsync("foo", cancellationToken: TestContext.CancellationTokenSource.Token); + }); } private void VerifyDefaults() diff --git a/test/Cloudflare.Tests/CloudflareClientTests/PatchAsyncTest.cs b/test/Cloudflare.Tests/CloudflareClientTests/PatchAsyncTest.cs index c3cf33b..d0c63fd 100644 --- a/test/Cloudflare.Tests/CloudflareClientTests/PatchAsyncTest.cs +++ b/test/Cloudflare.Tests/CloudflareClientTests/PatchAsyncTest.cs @@ -12,11 +12,13 @@ using AMWD.Net.Api.Cloudflare; using Moq; using Moq.Protected; -namespace Cloudflare.Core.Tests.CloudflareClientTests +namespace Cloudflare.Tests.CloudflareClientTests { [TestClass] public class PatchAsyncTest { + public TestContext TestContext { get; set; } + private const string BaseUrl = "https://localhost/api/v4/"; private HttpMessageHandlerMock _httpHandlerMock; @@ -52,46 +54,46 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(ObjectDisposedException))] public async Task ShouldThrowDisposed() { // Arrange var client = GetClient() as CloudflareClient; client.Dispose(); - // Act - await client.PatchAsync("test", _request); - - // Assert - ObjectDisposedException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PatchAsync("test", _request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullOnRequestPath(string path) { // Arrange var client = GetClient(); - // Act - await client.PatchAsync(path, _request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PatchAsync(path, _request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentOnRequestPath() { // Arrange var client = GetClient(); - // Act - await client.PatchAsync("foo?bar=baz", _request); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PatchAsync("foo?bar=baz", _request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -107,7 +109,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PatchAsync("test", _request); + var response = await client.PatchAsync("test", _request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -116,21 +118,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Patch, callback.Method); Assert.AreEqual("https://localhost/api/v4/test", callback.Url); Assert.AreEqual(@"{""string"":""Happy Testing!"",""integer"":54321}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -159,7 +161,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PatchAsync("test", stringContent); + var response = await client.PatchAsync("test", stringContent, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -168,21 +170,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Patch, callback.Method); Assert.AreEqual("https://localhost/api/v4/test", callback.Url); Assert.AreEqual(@"{""test"":""HERE ?""}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -211,18 +213,13 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - try + var ex = await Assert.ThrowsExactlyAsync(async () => { - // Act - await client.PatchAsync("foo", _request); - Assert.Fail(); - } - catch (AuthenticationException ex) - { - // Assert - Assert.IsNull(ex.InnerException); - Assert.AreEqual($"4711: foo & baz.{Environment.NewLine}4712: Happy Error!", ex.Message); - } + await client.PatchAsync("foo", _request, TestContext.CancellationTokenSource.Token); + }); + // Assert + Assert.IsNull(ex.InnerException); + Assert.AreEqual($"4711: foo & baz.{Environment.NewLine}4712: Happy Error!", ex.Message); } [TestMethod] @@ -239,7 +236,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PatchAsync("some-awesome-path", _request); + var response = await client.PatchAsync("some-awesome-path", _request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -250,14 +247,14 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.AreEqual("This is an awesome text ;-)", response.Result); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Patch, callback.Method); Assert.AreEqual("https://localhost/api/v4/some-awesome-path?bar=08%2F15", callback.Url); Assert.AreEqual(@"{""string"":""Happy Testing!"",""integer"":54321}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -283,7 +280,6 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(JsonReaderException))] public async Task ShouldThrowExceptionOnInvalidResponse() { // Arrange @@ -295,8 +291,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - // Act - await client.PatchAsync("some-path", _request); + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PatchAsync("some-path", _request, TestContext.CancellationTokenSource.Token); + }); } private void VerifyDefaults() diff --git a/test/Cloudflare.Tests/CloudflareClientTests/PostAsyncTest.cs b/test/Cloudflare.Tests/CloudflareClientTests/PostAsyncTest.cs index 2b97170..71fea5a 100644 --- a/test/Cloudflare.Tests/CloudflareClientTests/PostAsyncTest.cs +++ b/test/Cloudflare.Tests/CloudflareClientTests/PostAsyncTest.cs @@ -12,11 +12,13 @@ using AMWD.Net.Api.Cloudflare; using Moq; using Moq.Protected; -namespace Cloudflare.Core.Tests.CloudflareClientTests +namespace Cloudflare.Tests.CloudflareClientTests { [TestClass] public class PostAsyncTest { + public TestContext TestContext { get; set; } + private const string BaseUrl = "https://localhost/api/v4/"; private HttpMessageHandlerMock _httpHandlerMock; @@ -52,46 +54,46 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(ObjectDisposedException))] public async Task ShouldThrowDisposed() { // Arrange var client = GetClient() as CloudflareClient; client.Dispose(); - // Act - await client.PostAsync("test", _request); - - // Assert - ObjectDisposedException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PostAsync("test", _request, cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullOnRequestPath(string path) { // Arrange var client = GetClient(); - // Act - await client.PostAsync(path, _request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PostAsync(path, _request, cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentOnRequestPath() { // Arrange var client = GetClient(); - // Act - await client.PostAsync("foo?bar=baz", _request); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PostAsync("foo?bar=baz", _request, cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -107,7 +109,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PostAsync("test", _request); + var response = await client.PostAsync("test", _request, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -116,21 +118,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Post, callback.Method); Assert.AreEqual("https://localhost/api/v4/test", callback.Url); Assert.AreEqual(@"{""string"":""Happy Testing!"",""integer"":54321}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -159,7 +161,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PostAsync("test", stringContent); + var response = await client.PostAsync("test", stringContent, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -168,21 +170,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Post, callback.Method); Assert.AreEqual("https://localhost/api/v4/test", callback.Url); Assert.AreEqual(@"{""test"":""HERE ?""}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -210,7 +212,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PostAsync("posting", null); + var response = await client.PostAsync("posting", null, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -219,21 +221,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Post, callback.Method); Assert.AreEqual("https://localhost/api/v4/posting", callback.Url); Assert.IsNull(callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -259,18 +261,13 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - try + // Act & Assert + var ex = await Assert.ThrowsExactlyAsync(async () => { - // Act - await client.PostAsync("foo", _request); - Assert.Fail(); - } - catch (AuthenticationException ex) - { - // Assert - Assert.IsNull(ex.InnerException); - Assert.AreEqual($"4711: foo & baz.{Environment.NewLine}4712: Happy Error!", ex.Message); - } + await client.PostAsync("foo", _request, cancellationToken: TestContext.CancellationTokenSource.Token); + }); + Assert.IsNull(ex.InnerException); + Assert.AreEqual($"4711: foo & baz.{Environment.NewLine}4712: Happy Error!", ex.Message); } [TestMethod] @@ -287,7 +284,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PostAsync("some-awesome-path", _request); + var response = await client.PostAsync("some-awesome-path", _request, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -298,14 +295,14 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.AreEqual("This is an awesome text ;-)", response.Result); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Post, callback.Method); Assert.AreEqual("https://localhost/api/v4/some-awesome-path?bar=08%2F15", callback.Url); Assert.AreEqual(@"{""string"":""Happy Testing!"",""integer"":54321}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -331,7 +328,6 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(JsonReaderException))] public async Task ShouldThrowExceptionOnInvalidResponse() { // Arrange @@ -343,8 +339,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - // Act - await client.PostAsync("some-path", _request); + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PostAsync("some-path", _request, cancellationToken: TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -361,7 +360,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PostAsync("path", _request); + var response = await client.PostAsync("path", _request, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -372,14 +371,14 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.AreEqual("This is an awesome text ;-)", response.Result); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Post, callback.Method); Assert.AreEqual("https://localhost/api/v4/path", callback.Url); Assert.AreEqual(@"{""integer"":54321}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); diff --git a/test/Cloudflare.Tests/CloudflareClientTests/PutAsyncTest.cs b/test/Cloudflare.Tests/CloudflareClientTests/PutAsyncTest.cs index 55501c3..e7bc559 100644 --- a/test/Cloudflare.Tests/CloudflareClientTests/PutAsyncTest.cs +++ b/test/Cloudflare.Tests/CloudflareClientTests/PutAsyncTest.cs @@ -12,11 +12,13 @@ using AMWD.Net.Api.Cloudflare; using Moq; using Moq.Protected; -namespace Cloudflare.Core.Tests.CloudflareClientTests +namespace Cloudflare.Tests.CloudflareClientTests { [TestClass] public class PutAsyncTest { + public TestContext TestContext { get; set; } + private const string BaseUrl = "https://localhost/api/v4/"; private HttpMessageHandlerMock _httpHandlerMock; @@ -52,46 +54,46 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(ObjectDisposedException))] public async Task ShouldThrowDisposed() { // Arrange var client = GetClient() as CloudflareClient; client.Dispose(); - // Act - await client.PutAsync("test", _request); - - // Assert - ObjectDisposedException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PutAsync("test", _request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullOnRequestPath(string path) { // Arrange var client = GetClient(); - // Act - await client.PutAsync(path, _request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PutAsync(path, _request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentOnRequestPath() { // Arrange var client = GetClient(); - // Act - await client.PutAsync("foo?bar=baz", _request); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PutAsync("foo?bar=baz", _request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -107,7 +109,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PutAsync("test", _request); + var response = await client.PutAsync("test", _request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -116,21 +118,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Put, callback.Method); Assert.AreEqual("https://localhost/api/v4/test", callback.Url); Assert.AreEqual(@"{""string"":""Happy Testing!"",""integer"":54321}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -159,7 +161,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PutAsync("test", stringContent); + var response = await client.PutAsync("test", stringContent, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -168,21 +170,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Put, callback.Method); Assert.AreEqual("https://localhost/api/v4/test", callback.Url); Assert.AreEqual(@"{""test"":""HERE ?""}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -210,7 +212,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PutAsync("putput", null); + var response = await client.PutAsync("putput", null, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -219,21 +221,21 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.IsNotNull(response.Messages); Assert.IsNull(response.ResultInfo); - Assert.AreEqual(0, response.Errors.Count); - Assert.AreEqual(0, response.Messages.Count); + Assert.IsEmpty(response.Errors); + Assert.IsEmpty(response.Messages); Assert.IsNotNull(response.Result); Assert.AreEqual("some-string", response.Result.Str); Assert.AreEqual(123, response.Result.Int); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Put, callback.Method); Assert.AreEqual("https://localhost/api/v4/putput", callback.Url); Assert.IsNull(callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -262,7 +264,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests try { // Act - await client.PutAsync("foo", _request); + await client.PutAsync("foo", _request, TestContext.CancellationTokenSource.Token); Assert.Fail(); } catch (AuthenticationException ex) @@ -287,7 +289,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); // Act - var response = await client.PutAsync("some-awesome-path", _request); + var response = await client.PutAsync("some-awesome-path", _request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -298,14 +300,14 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests Assert.AreEqual("This is an awesome text ;-)", response.Result); - Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count); + Assert.HasCount(1, _httpHandlerMock.Callbacks); var callback = _httpHandlerMock.Callbacks.First(); Assert.AreEqual(HttpMethod.Put, callback.Method); Assert.AreEqual("https://localhost/api/v4/some-awesome-path?bar=08%2F15", callback.Url); Assert.AreEqual(@"{""string"":""Happy Testing!"",""integer"":54321}", callback.Content); - Assert.AreEqual(3, callback.Headers.Count); + Assert.HasCount(3, callback.Headers); Assert.IsTrue(callback.Headers.ContainsKey("Accept")); Assert.IsTrue(callback.Headers.ContainsKey("Authorization")); Assert.IsTrue(callback.Headers.ContainsKey("User-Agent")); @@ -331,7 +333,6 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests } [TestMethod] - [ExpectedException(typeof(JsonReaderException))] public async Task ShouldThrowExceptionOnInvalidResponse() { // Arrange @@ -343,8 +344,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests var client = GetClient(); - // Act - await client.PutAsync("some-path", _request); + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.PutAsync("some-path", _request, TestContext.CancellationTokenSource.Token); + }); } private void VerifyDefaults() diff --git a/test/Cloudflare.Tests/Extensions/EnumExtensionsTest.cs b/test/Cloudflare.Tests/Extensions/EnumExtensionsTest.cs index 570543e..5904762 100644 --- a/test/Cloudflare.Tests/Extensions/EnumExtensionsTest.cs +++ b/test/Cloudflare.Tests/Extensions/EnumExtensionsTest.cs @@ -1,7 +1,7 @@ using System.Runtime.Serialization; using AMWD.Net.Api.Cloudflare; -namespace Cloudflare.Core.Tests.Extensions +namespace Cloudflare.Tests.Extensions { [TestClass] public class EnumExtensionsTest diff --git a/test/Cloudflare.Tests/Extensions/StringExtensionsTest.cs b/test/Cloudflare.Tests/Extensions/StringExtensionsTest.cs index 3cc5339..a3745aa 100644 --- a/test/Cloudflare.Tests/Extensions/StringExtensionsTest.cs +++ b/test/Cloudflare.Tests/Extensions/StringExtensionsTest.cs @@ -1,5 +1,4 @@ -using System; -using AMWD.Net.Api.Cloudflare; +using AMWD.Net.Api.Cloudflare; namespace Cloudflare.Tests.Extensions { @@ -22,43 +21,34 @@ namespace Cloudflare.Tests.Extensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldThrowArgumentNullExceptionForValidateId(string name) { // Arrange - // Act - name.ValidateCloudflareId(); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => name.ValidateCloudflareId()); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public void ShouldThrowArgumentOutOfRangeExceptionForValidateId() { // Arrange string id = new('a', 33); - // Act - id.ValidateCloudflareId(); - - // Assert - ArgumentException + // Act & Assert + Assert.ThrowsExactly(() => id.ValidateCloudflareId()); } [TestMethod] [DataRow("023e105f4ecef8ad9ca31a8372d0c35")] [DataRow("023e105f4ecef8ad9ca31a8372d0C353")] [DataRow("023e105f4ecef8ad9ca31a8372d0y353")] - [ExpectedException(typeof(ArgumentException))] public void ShouldThrowArgumentExceptionForValidateId(string id) { // Arrange - // Act - id.ValidateCloudflareId(); - - // Assert - ArgumentException + // Act & Assert + Assert.ThrowsExactly(() => id.ValidateCloudflareId()); } [TestMethod] @@ -77,28 +67,22 @@ namespace Cloudflare.Tests.Extensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldThrowArgumentNullExceptionForValidateName(string name) { // Arrange - // Act - name.ValidateCloudflareName(); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => name.ValidateCloudflareName()); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public void ShouldThrowArgumentOutOfRangeExceptionForValidateName() { // Arrange string name = new('a', 254); - // Act - name.ValidateCloudflareName(); - - // Assert - ArgumentException + // Act & Assert + Assert.ThrowsExactly(() => name.ValidateCloudflareName()); } [TestMethod] @@ -117,30 +101,24 @@ namespace Cloudflare.Tests.Extensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public void ShouldThrowArgumentNullExceptionForValidateEmail(string email) { // Arrange - // Act - email.ValidateCloudflareEmailAddress(); - - // Assert - ArgumentNullException + // Act & Assert + Assert.ThrowsExactly(() => email.ValidateCloudflareEmailAddress()); } [TestMethod] [DataRow("test")] [DataRow("test@example")] [DataRow("example.com")] - [ExpectedException(typeof(ArgumentException))] public void ShouldThrowArgumentExceptionForValidateEmail(string email) { // Arrange - // Act - email.ValidateCloudflareEmailAddress(); - - // Assert - ArgumentException + // Act & Assert + Assert.ThrowsExactly(() => email.ValidateCloudflareEmailAddress()); } [TestMethod] @@ -157,16 +135,13 @@ namespace Cloudflare.Tests.Extensions } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public void ShouldThrowArgumentExceptionForValidateLength() { // Arrange string str = "SomeExampleString"; - // Act - str.ValidateLength(10, nameof(str)); - - // Assert - ArgumentException + // Act & Assert + Assert.ThrowsExactly(() => str.ValidateLength(10, nameof(str))); } } } diff --git a/test/Cloudflare.Tests/MessageHandlerMock.cs b/test/Cloudflare.Tests/MessageHandlerMock.cs index 45ac95c..8f642c2 100644 --- a/test/Cloudflare.Tests/MessageHandlerMock.cs +++ b/test/Cloudflare.Tests/MessageHandlerMock.cs @@ -1,12 +1,11 @@ -using System.Collections.Generic; -using System.Linq; +using System.Linq; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Moq; using Moq.Protected; -namespace Cloudflare.Core.Tests +namespace Cloudflare.Tests { internal class HttpMessageHandlerMock { @@ -25,11 +24,11 @@ namespace Cloudflare.Core.Tests }; if (request.Content != null) - callback.Content = await request.Content.ReadAsStringAsync(); + callback.Content = await request.Content.ReadAsStringAsync(ct); Callbacks.Add(callback); }) - .ReturnsAsync(() => Responses.Dequeue()); + .ReturnsAsync(Responses.Dequeue); } public List Callbacks { get; } = []; diff --git a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs index 73e726f..7a2477c 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [TestClass] public class AddCustomNameserverTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string Nameserver = "ns1.example.com"; @@ -50,21 +52,21 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions var client = GetClient(); // Act - var response = await client.AddCustomNameserver(_request); + var response = await client.AddCustomNameserver(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/custom_ns", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/custom_ns", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.NameserverName, callback.Request.NameserverName); - Assert.IsNull(callback.Request.NameserverSet); + Assert.AreEqual(_request.NameserverName, request.NameserverName); + Assert.IsNull(request.NameserverSet); _clientMock.Verify(m => m.PostAsync($"/accounts/{AccountId}/custom_ns", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs index f06e6bf..fc88628 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [TestClass] public class DeleteCustomNameserverTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string Nameserver = "ns1.example.com"; @@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions var client = GetClient(); // Act - var response = await client.DeleteCustomNameserver(AccountId, Nameserver); + var response = await client.DeleteCustomNameserver(AccountId, Nameserver, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/custom_ns/{Nameserver}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/custom_ns/{Nameserver}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync>($"/accounts/{AccountId}/custom_ns/{Nameserver}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -66,16 +68,13 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldDeleteCustomNameserver(string nameserver) { // Arrange var client = GetClient(); - // Act - var response = await client.DeleteCustomNameserver(AccountId, nameserver); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.DeleteCustomNameserver(AccountId, nameserver, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs index 4bb2372..8d0d1c8 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs @@ -10,9 +10,9 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [TestClass] public class ListCustomNameserverTest { - private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; + public TestContext TestContext { get; set; } - private const string Nameserver = "ns1.example.com"; + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -45,18 +45,18 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions var client = GetClient(); // Act - var response = await client.ListCustomNameserver(AccountId); + var response = await client.ListCustomNameserver(AccountId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/custom_ns", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/custom_ns", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/accounts/{AccountId}/custom_ns", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs index 9699978..1e36dcd 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions [TestClass] public class ShowDnsAccountSettingsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c354"; @@ -69,19 +71,19 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions var client = GetClient(); // Act - var response = await client.ShowDnsAccountSettings(AccountId); + var response = await client.ShowDnsAccountSettings(AccountId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNull(callback.QueryFilter); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/accounts/{AccountId}/dns_settings", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs index 5f2673f..4faf7fd 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions [TestClass] public class UpdateDnsAccountSettingsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c354"; @@ -100,37 +102,37 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions var client = GetClient(); // Act - var response = await client.UpdateDnsAccountSettings(_request); + var response = await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsTrue(callback.Request.ZoneDefaults.FlattenAllCnames); - Assert.IsFalse(callback.Request.ZoneDefaults.FoundationDns); - Assert.IsNotNull(callback.Request.ZoneDefaults.InternalDns); - Assert.AreEqual(ZoneId, callback.Request.ZoneDefaults.InternalDns.ReferenceZoneId); - Assert.IsFalse(callback.Request.ZoneDefaults.MultiProvider); - Assert.IsNotNull(callback.Request.ZoneDefaults.Nameservers); - Assert.AreEqual(DnsAccountNameserversType.Random, callback.Request.ZoneDefaults.Nameservers.Type); - Assert.AreEqual(86400, callback.Request.ZoneDefaults.NameserverTtl); - Assert.IsFalse(callback.Request.ZoneDefaults.SecondaryOverrides); - Assert.IsNotNull(callback.Request.ZoneDefaults.SOA); - Assert.AreEqual(604800, callback.Request.ZoneDefaults.SOA.Expire); - Assert.AreEqual(1800, callback.Request.ZoneDefaults.SOA.MinimumTtl); - Assert.AreEqual("ns1.example.org", callback.Request.ZoneDefaults.SOA.PrimaryNameserver); - Assert.AreEqual(28800, callback.Request.ZoneDefaults.SOA.Refresh); - Assert.AreEqual(3600, callback.Request.ZoneDefaults.SOA.Retry); - Assert.AreEqual(43200, callback.Request.ZoneDefaults.SOA.TimeToLive); - Assert.AreEqual("admin.example.org", callback.Request.ZoneDefaults.SOA.ZoneAdministrator); - Assert.AreEqual(DnsZoneMode.Standard, callback.Request.ZoneDefaults.ZoneMode); + Assert.IsNotNull(request); + Assert.IsTrue(request.ZoneDefaults.FlattenAllCnames); + Assert.IsFalse(request.ZoneDefaults.FoundationDns); + Assert.IsNotNull(request.ZoneDefaults.InternalDns); + Assert.AreEqual(ZoneId, request.ZoneDefaults.InternalDns.ReferenceZoneId); + Assert.IsFalse(request.ZoneDefaults.MultiProvider); + Assert.IsNotNull(request.ZoneDefaults.Nameservers); + Assert.AreEqual(DnsAccountNameserversType.Random, request.ZoneDefaults.Nameservers.Type); + Assert.AreEqual(86400, request.ZoneDefaults.NameserverTtl); + Assert.IsFalse(request.ZoneDefaults.SecondaryOverrides); + Assert.IsNotNull(request.ZoneDefaults.SOA); + Assert.AreEqual(604800, request.ZoneDefaults.SOA.Expire); + Assert.AreEqual(1800, request.ZoneDefaults.SOA.MinimumTtl); + Assert.AreEqual("ns1.example.org", request.ZoneDefaults.SOA.PrimaryNameserver); + Assert.AreEqual(28800, request.ZoneDefaults.SOA.Refresh); + Assert.AreEqual(3600, request.ZoneDefaults.SOA.Retry); + Assert.AreEqual(43200, request.ZoneDefaults.SOA.TimeToLive); + Assert.AreEqual("admin.example.org", request.ZoneDefaults.SOA.ZoneAdministrator); + Assert.AreEqual(DnsZoneMode.Standard, request.ZoneDefaults.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/accounts/{AccountId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -140,24 +142,24 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions public async Task ShouldUpdateDnsSettingsNone() { // Arrange - var request = new UpdateDnsAccountSettingsRequest(AccountId); + var req = new UpdateDnsAccountSettingsRequest(AccountId); var client = GetClient(); // Act - var response = await client.UpdateDnsAccountSettings(request); + var response = await client.UpdateDnsAccountSettings(req, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsNull(callback.Request.ZoneDefaults); + Assert.IsNotNull(request); + Assert.IsNull(request.ZoneDefaults); _clientMock.Verify(m => m.PatchAsync($"/accounts/{AccountId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -167,196 +169,196 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions public async Task ShouldUpdateDnsSettingsNoneDefaults() { // Arrange - var request = new UpdateDnsAccountSettingsRequest(AccountId) + var req = new UpdateDnsAccountSettingsRequest(AccountId) { ZoneDefaults = new DnsAccountZoneDefaults() }; var client = GetClient(); // Act - var response = await client.UpdateDnsAccountSettings(request); + var response = await client.UpdateDnsAccountSettings(req, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsNotNull(callback.Request.ZoneDefaults); - Assert.IsNull(callback.Request.ZoneDefaults.FlattenAllCnames); - Assert.IsNull(callback.Request.ZoneDefaults.FoundationDns); - Assert.IsNull(callback.Request.ZoneDefaults.MultiProvider); - Assert.IsNull(callback.Request.ZoneDefaults.Nameservers); - Assert.IsNull(callback.Request.ZoneDefaults.NameserverTtl); - Assert.IsNull(callback.Request.ZoneDefaults.SecondaryOverrides); - Assert.IsNull(callback.Request.ZoneDefaults.SOA); - Assert.IsNull(callback.Request.ZoneDefaults.ZoneMode); + Assert.IsNotNull(request); + Assert.IsNotNull(request.ZoneDefaults); + Assert.IsNull(request.ZoneDefaults.FlattenAllCnames); + Assert.IsNull(request.ZoneDefaults.FoundationDns); + Assert.IsNull(request.ZoneDefaults.MultiProvider); + Assert.IsNull(request.ZoneDefaults.Nameservers); + Assert.IsNull(request.ZoneDefaults.NameserverTtl); + Assert.IsNull(request.ZoneDefaults.SecondaryOverrides); + Assert.IsNull(request.ZoneDefaults.SOA); + Assert.IsNull(request.ZoneDefaults.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/accounts/{AccountId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidMode() { // Arrange _request.ZoneDefaults.ZoneMode = 0; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverType() { // Arrange _request.ZoneDefaults.Nameservers.Type = 0; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(29)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverTtl(int ttl) { // Arrange _request.ZoneDefaults.NameserverTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(86399)] [DataRow(2419201)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaExpire(int ttl) { // Arrange _request.ZoneDefaults.SOA.Expire = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(59)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaMinimumTtl(int ttl) { // Arrange _request.ZoneDefaults.SOA.MinimumTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaNameserver(string nameserver) { // Arrange _request.ZoneDefaults.SOA.PrimaryNameserver = nameserver; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRefresh(int ttl) { // Arrange _request.ZoneDefaults.SOA.Refresh = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRetry(int ttl) { // Arrange _request.ZoneDefaults.SOA.Retry = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(299)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaTtl(int ttl) { // Arrange _request.ZoneDefaults.SOA.TimeToLive = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaAdministrator(string admin) { // Arrange _request.ZoneDefaults.SOA.ZoneAdministrator = admin; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs index 198c773..aabc417 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views [TestClass] public class CreateInternalDnsViewTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354"; private const string ViewName = "InternalView"; @@ -50,21 +52,21 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views var client = GetClient(); // Act - var response = await client.CreateInternalDnsView(_request); + var response = await client.CreateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(ViewName, callback.Request.Name); - CollectionAssert.AreEqual(_request.ZoneIds.ToList(), callback.Request.Zones.ToList()); + Assert.AreEqual(ViewName, request.Name); + CollectionAssert.AreEqual(_request.ZoneIds.ToList(), request.Zones.ToList()); _clientMock.Verify(m => m.PostAsync($"/accounts/{AccountId}/dns_settings/views", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -74,31 +76,31 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionWhenNameIsNull(string name) { // Arrange _request.Name = name; var client = GetClient(); - // Act - var response = await client.CreateInternalDnsView(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + var response = await client.CreateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionWhenNameTooLong() { // Arrange _request.Name = new string('a', 256); var client = GetClient(); - // Act - var response = await client.CreateInternalDnsView(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + var response = await client.CreateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs index f28d948..7d74fea 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views [TestClass] public class DeleteInternalDnsViewTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354"; @@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views var client = GetClient(); // Act - var response = await client.DeleteInternalDnsView(AccountId, ViewId); + var response = await client.DeleteInternalDnsView(AccountId, ViewId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync($"/accounts/{AccountId}/dns_settings/views/{ViewId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs index cfa8160..d7c65c0 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views [TestClass] public class InternalDnsViewDetailsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354"; private const string ViewName = "InternalView"; @@ -43,18 +45,18 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views var client = GetClient(); // Act - var response = await client.InternalDnsViewDetails(AccountId, ViewId); + var response = await client.InternalDnsViewDetails(AccountId, ViewId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync( $"/accounts/{AccountId}/dns_settings/views/{ViewId}", diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs index 4c1e07c..e931dbf 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views [TestClass] public class ListInternalDnsViewsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -45,19 +47,19 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views var client = GetClient(); // Act - var response = await client.ListInternalDnsViews(AccountId); + var response = await client.ListInternalDnsViews(AccountId, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNotNull(response.Result); - Assert.AreEqual(2, response.Result.Count); + Assert.HasCount(2, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>( $"/accounts/{AccountId}/dns_settings/views", @@ -77,18 +79,18 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views }; // Act - var response = await client.ListInternalDnsViews(AccountId, filter); + var response = await client.ListInternalDnsViews(AccountId, filter, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNotNull(response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", callback.RequestPath); - Assert.AreEqual(filter, callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", requestPath); + Assert.AreEqual(filter, queryFilter); _clientMock.Verify(m => m.GetAsync>( $"/accounts/{AccountId}/dns_settings/views", @@ -110,7 +112,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -137,7 +139,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(11, dict.Count); + Assert.HasCount(11, dict); Assert.AreEqual("desc", dict["direction"]); Assert.AreEqual("all", dict["match"]); @@ -166,7 +168,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -183,7 +185,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -200,7 +202,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -217,7 +219,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -233,7 +235,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -249,7 +251,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -265,7 +267,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -281,7 +283,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -298,7 +300,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -315,7 +317,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -332,7 +334,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } #endregion QueryFilter diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs index d0e45ed..a9f837c 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views [TestClass] public class UpdateInternalDnsViewTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354"; private const string ViewName = "InternalView"; @@ -50,21 +52,21 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views var client = GetClient(); // Act - var response = await client.UpdateInternalDnsView(_request); + var response = await client.UpdateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(ViewName, callback.Request.Name); - CollectionAssert.AreEqual(_request.ZoneIds.ToList(), callback.Request.Zones.ToList()); + Assert.AreEqual(ViewName, request.Name); + CollectionAssert.AreEqual(_request.ZoneIds.ToList(), request.Zones.ToList()); _clientMock.Verify(m => m.PatchAsync( $"/accounts/{AccountId}/dns_settings/views/{ViewId}", @@ -77,31 +79,31 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionWhenNameIsNull(string name) { // Arrange _request.Name = name; var client = GetClient(); - // Act - var response = await client.UpdateInternalDnsView(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + var response = await client.UpdateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionWhenNameTooLong() { // Arrange _request.Name = new string('a', 256); var client = GetClient(); - // Act - var response = await client.UpdateInternalDnsView(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + var response = await client.UpdateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs index 39893eb..ca2f36a 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs @@ -10,13 +10,15 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions [TestClass] public class DeleteDnssecRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; private CloudflareResponse _response; - private List<(string RequestPath, IQueryParameterFilter? QueryFilter)> _callbacks; + private List<(string RequestPath, IQueryParameterFilter QueryFilter)> _callbacks; [TestInitialize] public void Initialize() @@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions var client = GetClient(); // Act - var response = await client.DeleteDnssecRecords(ZoneId); + var response = await client.DeleteDnssecRecords(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync( $"/zones/{ZoneId}/dnssec", @@ -71,9 +73,9 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions _clientMock .Setup(m => m.DeleteAsync( It.IsAny(), - It.IsAny(), + It.IsAny(), It.IsAny())) - .Callback((requestPath, queryFilter, _) => _callbacks.Add((requestPath, queryFilter))) + .Callback((requestPath, queryFilter, _) => _callbacks.Add((requestPath, queryFilter))) .ReturnsAsync(() => _response); return _clientMock.Object; diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs index 2518297..68aeda6 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions [TestClass] public class DnssecDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -61,18 +63,18 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions var client = GetClient(); // Act - var response = await client.DnssecDetails(ZoneId); + var response = await client.DnssecDetails(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync( $"/zones/{ZoneId}/dnssec", diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs index f38a753..c787d34 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions [TestClass] public class EditDnssecStatusTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -72,23 +74,23 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions var client = GetClient(); // Act - var response = await client.EditDnssecStatus(_request); + var response = await client.EditDnssecStatus(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_request.DnssecMultiSigner, callback.Request.DnssecMultiSigner); - Assert.AreEqual(_request.DnssecPresigned, callback.Request.DnssecPresigned); - Assert.AreEqual(_request.DnssecUseNsec3, callback.Request.DnssecUseNsec3); - Assert.AreEqual(_request.Status, callback.Request.Status); + Assert.IsNotNull(request); + Assert.AreEqual(_request.DnssecMultiSigner, request.DnssecMultiSigner); + Assert.AreEqual(_request.DnssecPresigned, request.DnssecPresigned); + Assert.AreEqual(_request.DnssecUseNsec3, request.DnssecUseNsec3); + Assert.AreEqual(_request.Status, request.Status); _clientMock.Verify(m => m.PatchAsync( $"/zones/{ZoneId}/dnssec", diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs index 5d5173c..bfe12c9 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class BatchDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -63,7 +65,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.BatchDnsRecords(_request); + var response = await client.BatchDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -79,32 +81,32 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.AreEqual(RecordId, response.Result.Overwrites.Single().Id); Assert.AreEqual(IpContent, response.Result.Overwrites.Single().Content); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/batch", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/batch", requestPath); + Assert.IsNull(queryFilter); + Assert.IsNotNull(request); - Assert.AreEqual(1, callback.Request.Deletes.Count); - Assert.AreEqual(RecordId, callback.Request.Deletes.First().Id); + Assert.HasCount(1, request.Deletes); + Assert.AreEqual(RecordId, request.Deletes.First().Id); - Assert.AreEqual(1, callback.Request.Patches.Count); - var patch = callback.Request.Patches.First(); + Assert.HasCount(1, request.Patches); + var patch = request.Patches.First(); Assert.AreEqual(RecordId, patch.Id); Assert.AreEqual(DomainName, patch.Name); Assert.AreEqual(DnsRecordType.A, patch.Type); Assert.AreEqual(IpContent, patch.Content); - Assert.AreEqual(1, callback.Request.Puts.Count); - var put = callback.Request.Puts.First(); + Assert.HasCount(1, request.Puts); + var put = request.Puts.First(); Assert.AreEqual(RecordId, put.Id); Assert.AreEqual(DomainName, put.Name); Assert.AreEqual(DnsRecordType.A, put.Type); Assert.AreEqual(IpContent, put.Content); - Assert.AreEqual(1, callback.Request.Posts.Count); - var post = callback.Request.Posts.First(); + Assert.HasCount(1, request.Posts); + var post = request.Posts.First(); Assert.AreEqual(DomainName, post.Name); Assert.AreEqual(DnsRecordType.A, post.Type); Assert.AreEqual(IpContent, post.Content); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs index eb47863..21837e6 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class CreateDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -91,33 +93,33 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_request.Name, callback.Request.Name); - Assert.AreEqual(_request.Type, callback.Request.Type); - Assert.IsNull(callback.Request.Content); - Assert.IsNotNull(callback.Request.Data); - Assert.IsNull(callback.Request.Settings); - Assert.IsNull(callback.Request.Priority); - Assert.AreEqual(_request.Proxied, callback.Request.Proxied); - Assert.AreEqual(_request.Comment, callback.Request.Comment); - Assert.AreEqual(_request.TimeToLive, callback.Request.Ttl); - CollectionAssert.AreEqual(_request.Tags.ToArray(), callback.Request.Tags.ToArray()); + Assert.IsNotNull(request); + Assert.AreEqual(_request.Name, request.Name); + Assert.AreEqual(_request.Type, request.Type); + Assert.IsNull(request.Content); + Assert.IsNotNull(request.Data); + Assert.IsNull(request.Settings); + Assert.IsNull(request.Priority); + Assert.AreEqual(_request.Proxied, request.Proxied); + Assert.AreEqual(_request.Comment, request.Comment); + Assert.AreEqual(_request.TimeToLive, request.Ttl); + CollectionAssert.AreEqual(_request.Tags.ToArray(), request.Tags.ToArray()); - Assert.IsInstanceOfType(callback.Request.Data); - var locData = callback.Request.Data as LOCRecordData; + Assert.IsInstanceOfType(request.Data); + var locData = request.Data as LOCRecordData; Assert.AreEqual(48, locData.LatitudeDegrees); Assert.AreEqual(8, locData.LatitudeMinutes); Assert.AreEqual(8.126, locData.LatitudeSeconds); @@ -139,38 +141,37 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForName(string str) { // Arrange _request.Name = str; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForType() { // Arrange _request.Type = 0; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForContent(string str) { // Arrange @@ -178,10 +179,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Content = str; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -193,17 +195,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual(_request.Content, callback.Request.Content); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.AreEqual(_request.Content, request.Content); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -219,17 +224,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNull(callback.Request.Settings); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.IsNull(request.Settings); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -245,17 +253,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNull(callback.Request.Settings); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.IsNull(request.Settings); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -271,37 +282,40 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Settings); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - Assert.IsInstanceOfType(callback.Request.Settings); - Assert.AreEqual(true, ((CNAMERecordSettings)callback.Request.Settings).FlattenCname); + Assert.IsNotNull(request.Settings); + + Assert.IsInstanceOfType(request.Settings); + Assert.IsTrue(((CNAMERecordSettings)request.Settings).FlattenCname); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForData() { // Arrange _request.Data = null; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -322,17 +336,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual(_request.Priority, callback.Request.Priority); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.AreEqual(_request.Priority, request.Priority); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -341,17 +358,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(DnsRecordType.MX)] [DataRow(DnsRecordType.URI)] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForPriority(DnsRecordType type) { // Arrange _request.Type = type; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -364,17 +381,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual(ttl, callback.Request.Ttl); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.AreEqual(ttl, request.Ttl); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -384,17 +404,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(0)] [DataRow(20)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForTtl(int ttl) { // Arrange _request.TimeToLive = ttl; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -411,7 +431,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(DnsRecordType.SVCB)] [DataRow(DnsRecordType.TLSA)] [DataRow(DnsRecordType.URI)] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentExceptionForInvalidTypeOfData(DnsRecordType type) { // Arrange @@ -420,10 +439,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new object(); var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #region CAA @@ -437,20 +457,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (CAARecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data); + + var data = (CAARecordData)request.Data; Assert.AreEqual(1, data.Flags); Assert.AreEqual("issue", data.Tag); Assert.AreEqual("letsencrypt.org", data.Value); @@ -460,7 +483,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForCaaDataTag(string str) { // Arrange @@ -468,17 +490,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new CAARecordData { Flags = 1, Tag = str, Value = "letsencrypt.org" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForCaaDataValue(string str) { // Arrange @@ -486,10 +508,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new CAARecordData { Flags = 1, Tag = "issue", Value = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion CAA @@ -505,20 +528,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(CERTRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (CERTRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(CERTRecordData)); + + var data = (CERTRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual("test", data.Certificate); Assert.AreEqual(2, data.KeyTag); @@ -529,7 +555,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForCertDataValue(string str) { // Arrange @@ -537,10 +562,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new CERTRecordData { Algorithm = 1, Certificate = str, KeyTag = 2, Type = 3 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion CERT @@ -556,20 +582,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(DNSKEYRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (DNSKEYRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(DNSKEYRecordData)); + + var data = (DNSKEYRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual(2, data.Flags); Assert.AreEqual(3, data.Protocol); @@ -580,7 +609,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForDnsKeyDataPublicKey(string str) { // Arrange @@ -588,10 +616,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new DNSKEYRecordData { Algorithm = 1, Flags = 2, Protocol = 3, PublicKey = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion DNSKEY @@ -607,20 +636,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(DSRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (DSRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(DSRecordData)); + + var data = (DSRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual("test", data.Digest); Assert.AreEqual(3, data.DigestType); @@ -631,7 +663,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForDsDataDigest(string str) { // Arrange @@ -639,10 +670,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new DSRecordData { Algorithm = 1, Digest = str, DigestType = 3, KeyTag = 4 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion DS @@ -658,20 +690,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(HTTPSRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (HTTPSRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(HTTPSRecordData)); + + var data = (HTTPSRecordData)request.Data; Assert.AreEqual(10, data.Priority); Assert.AreEqual(".", data.Target); Assert.AreEqual("foo.bar", data.Value); @@ -681,7 +716,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForHttpsDataTarget(string str) { // Arrange @@ -689,17 +723,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new HTTPSRecordData { Priority = 10, Target = str, Value = "foo.bar" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForHttpsDataValue(string str) { // Arrange @@ -707,10 +741,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new HTTPSRecordData { Priority = 10, Target = ".", Value = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion HTTPS @@ -725,7 +760,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -739,17 +774,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(91)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeDegree(int val) { // Arrange ((LOCRecordData)_request.Data).LatitudeDegrees = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -760,7 +795,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -774,17 +809,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(60)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeMinutes(int val) { // Arrange ((LOCRecordData)_request.Data).LatitudeMinutes = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -795,7 +830,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -809,17 +844,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1.0)] [DataRow(59.9991)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeSeconds(double val) { // Arrange ((LOCRecordData)_request.Data).LatitudeSeconds = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -830,7 +865,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -842,17 +877,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeDirection() { // Arrange ((LOCRecordData)_request.Data).LatitudeDirection = 0; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -863,7 +898,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -877,17 +912,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(181)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeDegree(int val) { // Arrange ((LOCRecordData)_request.Data).LongitudeDegrees = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -898,7 +933,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -912,17 +947,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(60)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeMinutes(int val) { // Arrange ((LOCRecordData)_request.Data).LongitudeMinutes = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -933,7 +968,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -947,17 +982,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1.0)] [DataRow(59.9991)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeSeconds(double val) { // Arrange ((LOCRecordData)_request.Data).LongitudeSeconds = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -968,7 +1003,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -980,17 +1015,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeDirection() { // Arrange ((LOCRecordData)_request.Data).LongitudeDirection = 0; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1001,7 +1036,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1015,17 +1050,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-100_000.1)] [DataRow(42_849_672.951)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataAltitde(double val) { // Arrange ((LOCRecordData)_request.Data).Altitude = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1036,7 +1071,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1050,17 +1085,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(90_000_001)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataSize(int val) { // Arrange ((LOCRecordData)_request.Data).Size = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1071,7 +1106,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1085,17 +1120,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(90_000_001)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataPrecisionHorizontal(int val) { // Arrange ((LOCRecordData)_request.Data).PrecisionHorizontal = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1106,7 +1141,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1120,17 +1155,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(90_000_001)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataPrecisionVertical(int val) { // Arrange ((LOCRecordData)_request.Data).PrecisionVertical = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion LOC @@ -1146,20 +1181,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(NAPTRRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (NAPTRRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(NAPTRRecordData)); + + var data = (NAPTRRecordData)request.Data; Assert.AreEqual("ab", data.Flags); Assert.AreEqual(1, data.Order); Assert.AreEqual(2, data.Preference); @@ -1172,7 +1210,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataFlags(string str) { // Arrange @@ -1180,17 +1217,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = str, Order = 1, Preference = 2, Regex = "cd", Replacement = "ef", Service = "gh" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataRegex(string str) { // Arrange @@ -1198,17 +1235,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = "ab", Order = 1, Preference = 2, Regex = str, Replacement = "ef", Service = "gh" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataReplacement(string str) { // Arrange @@ -1216,17 +1253,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = "ab", Order = 1, Preference = 2, Regex = "cd", Replacement = str, Service = "gh" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataService(string str) { // Arrange @@ -1234,10 +1271,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = "ab", Order = 1, Preference = 2, Regex = "cd", Replacement = "ef", Service = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion NAPTR @@ -1253,20 +1291,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SMIMEARecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SMIMEARecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SMIMEARecordData)); + + var data = (SMIMEARecordData)request.Data; Assert.AreEqual("cert", data.Certificate); Assert.AreEqual(1, data.MatchingType); Assert.AreEqual(2, data.Selector); @@ -1277,7 +1318,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSMimeACertificate(string str) { // Arrange @@ -1285,10 +1325,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SMIMEARecordData { Certificate = str, MatchingType = 1, Selector = 2, Usage = 3 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SMIMEA @@ -1305,20 +1346,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SRVRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SRVRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SRVRecordData)); + + var data = (SRVRecordData)request.Data; Assert.AreEqual(123, data.Port); Assert.AreEqual(345, data.Priority); Assert.AreEqual(".", data.Target); @@ -1329,7 +1373,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSrvTarget(string str) { // Arrange @@ -1338,10 +1381,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SRVRecordData { Port = 123, Priority = 345, Target = str, Weight = 456 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SRV @@ -1357,20 +1401,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SSHFPRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SSHFPRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SSHFPRecordData)); + + var data = (SSHFPRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual("fingerprint", data.Fingerprint); Assert.AreEqual(2, data.Type); @@ -1380,7 +1427,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSshFpFingerprint(string str) { // Arrange @@ -1388,10 +1434,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SSHFPRecordData { Algorithm = 1, Fingerprint = str, Type = 2 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SSHFP @@ -1407,20 +1454,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SVCBRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SVCBRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SVCBRecordData)); + + var data = (SVCBRecordData)request.Data; Assert.AreEqual(10, data.Priority); Assert.AreEqual(".", data.Target); Assert.AreEqual("example.com", data.Value); @@ -1430,7 +1480,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSvcBTarget(string str) { // Arrange @@ -1438,17 +1487,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SVCBRecordData { Priority = 10, Target = str, Value = "example.com" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSvcBValue(string str) { // Arrange @@ -1456,10 +1505,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SVCBRecordData { Priority = 10, Target = ".", Value = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SVCB @@ -1475,20 +1525,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(TLSARecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (TLSARecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(TLSARecordData)); + + var data = (TLSARecordData)request.Data; Assert.AreEqual("cert", data.Certificate); Assert.AreEqual(1, data.MatchingType); Assert.AreEqual(2, data.Selector); @@ -1499,7 +1552,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForTlsACertificate(string str) { // Arrange @@ -1507,10 +1559,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new TLSARecordData { Certificate = str, MatchingType = 1, Selector = 2, Usage = 3 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion TLSA @@ -1527,20 +1580,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(URIRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (URIRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(URIRecordData)); + + var data = (URIRecordData)request.Data; Assert.AreEqual("aim", data.Target); Assert.AreEqual(10, data.Weight); } @@ -1549,7 +1605,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForUriTarget(string str) { // Arrange @@ -1558,10 +1613,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new URIRecordData { Target = str, Weight = 10 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion URI diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs index d7a0936..be4af8d 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class DeleteDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DeleteDnsRecord(ZoneId, RecordId); + var response = await client.DeleteDnsRecord(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs index b3e4d61..c556aa4 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class DnsRecordDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -59,7 +61,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -67,11 +69,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -101,7 +103,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -109,11 +111,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -142,7 +144,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -150,11 +152,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -183,7 +185,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -191,11 +193,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -224,7 +226,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -232,11 +234,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -265,7 +267,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -273,11 +275,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -306,7 +308,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -314,11 +316,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -347,7 +349,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -355,11 +357,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -388,7 +390,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -396,11 +398,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -429,7 +431,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -437,11 +439,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -470,7 +472,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -478,11 +480,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -511,7 +513,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -519,11 +521,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -552,7 +554,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -560,11 +562,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -593,7 +595,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -601,11 +603,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -634,7 +636,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -642,11 +644,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -675,7 +677,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -683,11 +685,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -716,7 +718,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -724,11 +726,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -757,7 +759,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -765,11 +767,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -798,7 +800,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -806,11 +808,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -839,7 +841,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -847,11 +849,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -880,7 +882,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -888,11 +890,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -906,18 +908,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNull(response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -933,18 +935,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNull(response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs index 953a976..c15650d 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ExportDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -35,18 +37,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ExportDnsRecords(ZoneId); + var response = await client.ExportDnsRecords(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/export", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/export", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/export", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs index 5dc8a59..7f4997b 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ImportDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string BindConfigContent = "www.example.com. 300 IN A 127.0.0.1"; @@ -55,25 +57,25 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(1, callback.Request.Count()); + Assert.AreEqual(1, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -91,25 +93,25 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(1, callback.Request.Count()); + Assert.AreEqual(1, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -130,30 +132,30 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(2, callback.Request.Count()); + Assert.AreEqual(2, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("proxied", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync()); + Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); - part = callback.Request.Last(); + part = request.Last(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -174,30 +176,30 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(2, callback.Request.Count()); + Assert.AreEqual(2, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("proxied", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync()); + Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); - part = callback.Request.Last(); + part = request.Last(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -212,17 +214,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForFile(string file) { // Arrange _request.File = file; var client = GetClient(); - // Act - await client.ImportDnsRecords(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs index 2c382aa..d8f2fc8 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ListDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -83,14 +85,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ListDnsRecords(ZoneId); + var response = await client.ListDnsRecords(ZoneId, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNotNull(response.Result); - Assert.AreEqual(2, response.Result.Count); + Assert.HasCount(2, response.Result); Assert.IsInstanceOfType(response.Result.First()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c353", response.Result.First().Id); @@ -98,11 +100,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsInstanceOfType(response.Result.Last()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c355", response.Result.Last().Id); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/dns_records", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -120,14 +122,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ListDnsRecords(ZoneId, filter); + var response = await client.ListDnsRecords(ZoneId, filter, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNotNull(response.Result); - Assert.AreEqual(2, response.Result.Count); + Assert.HasCount(2, response.Result); Assert.IsInstanceOfType(response.Result.First()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c353", response.Result.First().Id); @@ -135,14 +137,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsInstanceOfType(response.Result.Last()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c355", response.Result.Last().Id); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.AreEqual("example.com", ((ListDnsRecordsFilter)callback.QueryFilter).Name); + Assert.IsInstanceOfType(queryFilter); + Assert.AreEqual("example.com", ((ListDnsRecordsFilter)queryFilter).Name); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/dns_records", filter, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -159,7 +161,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -214,7 +216,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(33, dict.Count); + Assert.HasCount(33, dict); Assert.IsTrue(dict.ContainsKey("comment")); Assert.IsTrue(dict.ContainsKey("comment.absent")); @@ -311,7 +313,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -327,7 +329,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -344,7 +346,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -361,7 +363,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -378,7 +380,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -394,7 +396,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -411,7 +413,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -428,7 +430,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -445,7 +447,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -462,7 +464,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -479,7 +481,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -496,7 +498,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -512,7 +514,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -528,7 +530,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -545,7 +547,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -562,7 +564,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -579,7 +581,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -596,7 +598,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -613,7 +615,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -629,7 +631,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -645,7 +647,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -662,7 +664,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -679,7 +681,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -696,7 +698,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -713,7 +715,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -730,7 +732,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -747,7 +749,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -764,7 +766,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -781,7 +783,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -797,7 +799,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -813,7 +815,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs index 690f7c9..487caa0 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class OverwriteDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -65,7 +67,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.OverwriteDnsRecord(_request); + var response = await client.OverwriteDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -88,15 +90,15 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsNotNull(response.Result.CommentModifiedOn); Assert.IsNotNull(response.Result.TagsModifiedOn); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual("example.com", callback.Request.Name); - Assert.AreEqual(DnsRecordType.A, callback.Request.Type); - Assert.AreEqual("127.0.1.22", callback.Request.Content); + Assert.AreEqual("example.com", request.Name); + Assert.AreEqual(DnsRecordType.A, request.Type); + Assert.AreEqual("127.0.1.22", request.Content); _clientMock.Verify(m => m.PutAsync($"/zones/{ZoneId}/dns_records/{RecordId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs index e9c77ff..fed60b2 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ScanDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -45,14 +47,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ScanDnsRecords(ZoneId); + var response = await client.ScanDnsRecords(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); Assert.AreEqual($"/zones/{ZoneId}/dns_records/scan", _callbacks.First()); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/scan", null, null, It.IsAny()), Times.Once); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs index 789048c..b84394e 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using System.Linq; using System.Threading; using System.Threading.Tasks; using AMWD.Net.Api.Cloudflare; @@ -15,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class UpdateDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -70,7 +69,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.UpdateDnsRecord(_request); + var response = await client.UpdateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -93,15 +92,15 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsNotNull(response.Result.CommentModifiedOn); Assert.IsNotNull(response.Result.TagsModifiedOn); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual("example.com", callback.Request.Name); - Assert.AreEqual(DnsRecordType.A, callback.Request.Type); - Assert.AreEqual("127.0.1.22", callback.Request.Content); + Assert.AreEqual("example.com", request.Name); + Assert.AreEqual(DnsRecordType.A, request.Type); + Assert.AreEqual("127.0.1.22", request.Content); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}/dns_records/{RecordId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs index 13f7547..7d8cef9 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions [TestClass] public class ShowDnsZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -65,19 +67,19 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.ShowDnsZoneSettings(ZoneId); + var response = await client.ShowDnsZoneSettings(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath); - Assert.IsNull(callback.QueryFilter); + Assert.IsNull(queryFilter); _clientMock?.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_settings", null, It.IsAny()), Times.Once); _clientMock?.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs index 0ef61df..2083cab 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions [TestClass] public class UpdateDnsZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -93,37 +95,37 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.UpdateDnsZoneSettings(_request); + var response = await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsTrue(callback.Request.FlattenAllCnames); - Assert.IsFalse(callback.Request.FoundationDns); - Assert.IsNotNull(callback.Request.InternalDns); - Assert.AreEqual(ZoneId, callback.Request.InternalDns.ReferenceZoneId); - Assert.IsFalse(callback.Request.MultiProvider); - Assert.IsNotNull(callback.Request.Nameservers); - Assert.AreEqual(DnsZoneNameserversType.Standard, callback.Request.Nameservers.Type); - Assert.AreEqual(86400, callback.Request.NameserverTtl); - Assert.IsFalse(callback.Request.SecondaryOverrides); - Assert.IsNotNull(callback.Request.SOA); - Assert.AreEqual(604800, callback.Request.SOA.Expire); - Assert.AreEqual(1800, callback.Request.SOA.MinimumTtl); - Assert.AreEqual("ns1.example.org", callback.Request.SOA.PrimaryNameserver); - Assert.AreEqual(28800, callback.Request.SOA.Refresh); - Assert.AreEqual(3600, callback.Request.SOA.Retry); - Assert.AreEqual(43200, callback.Request.SOA.TimeToLive); - Assert.AreEqual("admin.example.org", callback.Request.SOA.ZoneAdministrator); - Assert.AreEqual(DnsZoneMode.Standard, callback.Request.ZoneMode); + Assert.IsNotNull(request); + Assert.IsTrue(request.FlattenAllCnames); + Assert.IsFalse(request.FoundationDns); + Assert.IsNotNull(request.InternalDns); + Assert.AreEqual(ZoneId, request.InternalDns.ReferenceZoneId); + Assert.IsFalse(request.MultiProvider); + Assert.IsNotNull(request.Nameservers); + Assert.AreEqual(DnsZoneNameserversType.Standard, request.Nameservers.Type); + Assert.AreEqual(86400, request.NameserverTtl); + Assert.IsFalse(request.SecondaryOverrides); + Assert.IsNotNull(request.SOA); + Assert.AreEqual(604800, request.SOA.Expire); + Assert.AreEqual(1800, request.SOA.MinimumTtl); + Assert.AreEqual("ns1.example.org", request.SOA.PrimaryNameserver); + Assert.AreEqual(28800, request.SOA.Refresh); + Assert.AreEqual(3600, request.SOA.Retry); + Assert.AreEqual(43200, request.SOA.TimeToLive); + Assert.AreEqual("admin.example.org", request.SOA.ZoneAdministrator); + Assert.AreEqual(DnsZoneMode.Standard, request.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -133,192 +135,192 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions public async Task ShouldUpdateDnsSettingsNone() { // Arrange - var request = new UpdateDnsZoneSettingsRequest(ZoneId); + var req = new UpdateDnsZoneSettingsRequest(ZoneId); var client = GetClient(); // Act - var response = await client.UpdateDnsZoneSettings(request); + var response = await client.UpdateDnsZoneSettings(req, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsNull(callback.Request.FlattenAllCnames); - Assert.IsNull(callback.Request.FoundationDns); - Assert.IsNull(callback.Request.MultiProvider); - Assert.IsNull(callback.Request.Nameservers); - Assert.IsNull(callback.Request.NameserverTtl); - Assert.IsNull(callback.Request.SecondaryOverrides); - Assert.IsNull(callback.Request.SOA); - Assert.IsNull(callback.Request.ZoneMode); + Assert.IsNotNull(request); + Assert.IsNull(request.FlattenAllCnames); + Assert.IsNull(request.FoundationDns); + Assert.IsNull(request.MultiProvider); + Assert.IsNull(request.Nameservers); + Assert.IsNull(request.NameserverTtl); + Assert.IsNull(request.SecondaryOverrides); + Assert.IsNull(request.SOA); + Assert.IsNull(request.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidMode() { // Arrange _request.ZoneMode = 0; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverType() { // Arrange _request.Nameservers.Type = 0; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(29)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverTtl(int ttl) { // Arrange _request.NameserverTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(86399)] [DataRow(2419201)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaExpire(int ttl) { // Arrange _request.SOA.Expire = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(59)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaMinimumTtl(int ttl) { // Arrange _request.SOA.MinimumTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaNameserver(string nameserver) { // Arrange _request.SOA.PrimaryNameserver = nameserver; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRefresh(int ttl) { // Arrange _request.SOA.Refresh = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRetry(int ttl) { // Arrange _request.SOA.Retry = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(299)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaTtl(int ttl) { // Arrange _request.SOA.TimeToLive = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaAdministrator(string admin) { // Arrange _request.SOA.ZoneAdministrator = admin; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs index ad82eca..a206ffa 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs @@ -11,8 +11,9 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [TestClass] public class GetDomainTest { - private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string DomainName = "example.com"; private Mock _clientMock; @@ -36,16 +37,16 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions var client = GetClient(); // Act - var result = await client.GetDomain(AccountId, DomainName); + var result = await client.GetDomain(AccountId, DomainName, TestContext.CancellationTokenSource.Token); // Assert Assert.AreEqual(_response, result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/accounts/{AccountId}/registrar/domains/{DomainName}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -55,16 +56,13 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName) { // Arrange var client = GetClient(); - // Act - var result = await client.GetDomain(AccountId, domainName); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.GetDomain(AccountId, domainName, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs index 1b988c4..18220e3 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [TestClass] public class ListDomainsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -33,16 +35,16 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions var client = GetClient(); // Act - var result = await client.ListDomains(AccountId); + var result = await client.ListDomains(AccountId, TestContext.CancellationTokenSource.Token); // Assert Assert.AreEqual(_response, result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/registrar/domains", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/registrar/domains", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/accounts/{AccountId}/registrar/domains", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs index cfe66f3..96a0a85 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs @@ -12,8 +12,9 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [TestClass] public class UpdateDomainTest { - private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string DomainName = "example.com"; private Mock _clientMock; @@ -45,20 +46,20 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions var client = GetClient(); // Act - var result = await client.UpdateDomain(_request); + var result = await client.UpdateDomain(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.AreEqual(_response, result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_request.AutoRenew, callback.Request.AutoRenew); - Assert.AreEqual(_request.Locked, callback.Request.Locked); - Assert.AreEqual(_request.Privacy, callback.Request.Privacy); + Assert.IsNotNull(request); + Assert.AreEqual(_request.AutoRenew, request.AutoRenew); + Assert.AreEqual(_request.Locked, request.Locked); + Assert.AreEqual(_request.Privacy, request.Privacy); _clientMock.Verify(m => m.PutAsync($"/accounts/{AccountId}/registrar/domains/{DomainName}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -68,17 +69,14 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName) { // Arrange _request.DomainName = domainName; var client = GetClient(); - // Act - var result = await client.UpdateDomain(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.UpdateDomain(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs index 0ff160c..59b987c 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class CreateZoneHoldTest { + public TestContext TestContext { get; set; } + private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; @@ -54,21 +56,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.CreateZoneHold(_request); + var response = await client.CreateZoneHold(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.IsNull(((InternalCreateZoneHoldFilter)callback.QueryFilter).IncludeSubdomains); + Assert.IsInstanceOfType(queryFilter); + Assert.IsNull(((InternalCreateZoneHoldFilter)queryFilter).IncludeSubdomains); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/hold", null, It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -82,21 +84,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.CreateZoneHold(_request); + var response = await client.CreateZoneHold(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.IsTrue(((InternalCreateZoneHoldFilter)callback.QueryFilter).IncludeSubdomains); + Assert.IsInstanceOfType(queryFilter); + Assert.IsTrue(((InternalCreateZoneHoldFilter)queryFilter).IncludeSubdomains); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/hold", null, It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -113,7 +115,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -129,7 +131,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(1, dict.Count); + Assert.HasCount(1, dict); Assert.IsTrue(dict.ContainsKey("include_subdomains")); Assert.AreEqual(includeSubdomains.ToString().ToLower(), dict["include_subdomains"]); } diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs index a69a0d2..0e81361 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs @@ -10,7 +10,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class GetZoneHoldTest { - private readonly DateTime _date = new DateTime(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); + public TestContext TestContext { get; set; } + + private readonly DateTime _date = new(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -49,18 +51,18 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.GetZoneHold(ZoneId); + var response = await client.GetZoneHold(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/hold", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs index 56faf16..41fd5cf 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs @@ -11,8 +11,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class RemoveZoneHoldTest { - // Local: Europe/Berlin (Germany) - [CEST +2] | CET +1 - private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Unspecified); + public TestContext TestContext { get; set; } + + private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -55,21 +56,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.RemoveZoneHold(_request); + var response = await client.RemoveZoneHold(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.IsNull(((InternalRemoveZoneHoldFilter)callback.QueryFilter).HoldAfter); + Assert.IsInstanceOfType(queryFilter); + Assert.IsNull(((InternalRemoveZoneHoldFilter)queryFilter).HoldAfter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}/hold", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -83,21 +84,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.RemoveZoneHold(_request); + var response = await client.RemoveZoneHold(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.AreEqual(_date, ((InternalRemoveZoneHoldFilter)callback.QueryFilter).HoldAfter); + Assert.IsInstanceOfType(queryFilter); + Assert.AreEqual(_date, ((InternalRemoveZoneHoldFilter)queryFilter).HoldAfter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}/hold", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -114,7 +115,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -128,9 +129,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(1, dict.Count); + Assert.HasCount(1, dict); Assert.IsTrue(dict.ContainsKey("hold_after")); - Assert.AreEqual("2025-10-10T18:30:40Z", dict["hold_after"]); + Assert.AreEqual("2025-10-10T20:30:40Z", dict["hold_after"]); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs index 9462c48..f0ff98f 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs @@ -11,7 +11,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class UpdateZoneHoldTest { - private readonly DateTime _date = new DateTime(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); + public TestContext TestContext { get; set; } + + private readonly DateTime _date = new(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -58,21 +60,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.UpdateZoneHold(_request); + var response = await client.UpdateZoneHold(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_date, callback.Request.HoldAfter); - Assert.IsTrue(callback.Request.IncludeSubdomains); + Assert.IsNotNull(request); + Assert.AreEqual(_date, request.HoldAfter); + Assert.IsTrue(request.IncludeSubdomains); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs index 83aa3ef..dd1b049 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions [TestClass] public class AvailablePlanDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string PlanId = "023e105f4ecef8ad9ca31a8372d0c354"; @@ -44,18 +46,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions var client = GetClient(); // Act - var response = await client.AvailablePlanDetails(ZoneId, PlanId); + var response = await client.AvailablePlanDetails(ZoneId, PlanId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/available_plans/{PlanId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/available_plans/{PlanId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/available_plans/{PlanId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs index 81fbcb4..627267c 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions [TestClass] public class ListAvailablePlansTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions var client = GetClient(); // Act - var response = await client.ListAvailablePlans(ZoneId); + var response = await client.ListAvailablePlans(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/available_plans", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/available_plans", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/available_plans", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs index ffc917d..a03175a 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions [TestClass] public class ListAvailableRatePlansTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions var client = GetClient(); // Act - var response = await client.ListAvailableRatePlans(ZoneId); + var response = await client.ListAvailableRatePlans(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/available_rate_plans", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/available_rate_plans", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/available_rate_plans", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs index 209fa52..892350f 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class EditMultipleZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -57,7 +59,7 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions // Act #pragma warning disable CS0618 - var response = await client.EditMultipleZoneSettings(_request); + var response = await client.EditMultipleZoneSettings(_request, TestContext.CancellationTokenSource.Token); #pragma warning restore CS0618 // Assert @@ -65,16 +67,16 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(2, callback.Request.Count); + Assert.IsNotNull(request); + Assert.HasCount(2, request); - Assert.IsInstanceOfType(callback.Request.First()); - Assert.IsInstanceOfType(callback.Request.Last()); + Assert.IsInstanceOfType(request.First()); + Assert.IsInstanceOfType(request.Last()); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs index 03dab75..a795b16 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class EditZoneSettingTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -51,21 +53,21 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.EditZoneSetting(_request); + var response = await client.EditZoneSetting(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual("origin_pull", callback.Request["value"]); - Assert.IsFalse(callback.Request.ContainsKey("enabled")); + Assert.IsNotNull(request); + Assert.AreEqual("origin_pull", request["value"]); + Assert.IsFalse(request.ContainsKey("enabled")); } [TestMethod] @@ -78,35 +80,32 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.EditZoneSetting(_request); + var response = await client.EditZoneSetting(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(enabled, callback.Request["enabled"]); - Assert.IsFalse(callback.Request.ContainsKey("value")); + Assert.IsNotNull(request); + Assert.AreEqual(enabled, request["enabled"]); + Assert.IsFalse(request.ContainsKey("value")); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentException() { // Arrange var request = new EditZoneSettingRequest(ZoneId, new TestSetting()); var client = GetClient(); - // Act - var response = await client.EditZoneSetting(request); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZoneSetting(request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs index e5931de..06d016c 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class GetAllZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -47,7 +49,7 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions // Act #pragma warning disable CS0618 - var response = await client.GetAllZoneSettings(ZoneId); + var response = await client.GetAllZoneSettings(ZoneId, TestContext.CancellationTokenSource.Token); #pragma warning restore CS0618 // Assert @@ -55,11 +57,11 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/settings", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/settings", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs index 05d3af6..55445cf 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class GetZoneSettingTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,34 +45,31 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.GetZoneSetting(ZoneId); + var response = await client.GetZoneSetting(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/settings/ssl", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentException() { // Arrange var client = GetClient(); - // Act - var response = await client.GetZoneSetting(ZoneId); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.GetZoneSetting(ZoneId, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs index ce343ef..e320372 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions [TestClass] public class CreateZoneSubscriptionTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -56,21 +58,21 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions var client = GetClient(); // Act - var response = await client.CreateZoneSubscription(_request); + var response = await client.CreateZoneSubscription(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/subscription", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.Frequency, callback.Request.Frequency); - Assert.AreEqual(_request.RatePlan, callback.Request.RatePlan); + Assert.AreEqual(_request.Frequency, request.Frequency); + Assert.AreEqual(_request.RatePlan, request.RatePlan); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/subscription", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs index e416152..f9fae40 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions [TestClass] public class UpdateZoneSubscriptionTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -56,21 +58,21 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions var client = GetClient(); // Act - var response = await client.UpdateZoneSubscription(_request); + var response = await client.UpdateZoneSubscription(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/subscription", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.Frequency, callback.Request.Frequency); - Assert.AreEqual(_request.RatePlan, callback.Request.RatePlan); + Assert.AreEqual(_request.Frequency, request.Frequency); + Assert.AreEqual(_request.RatePlan, request.RatePlan); _clientMock.Verify(m => m.PutAsync($"/zones/{ZoneId}/subscription", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs index 1cedbea..809bf27 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions [TestClass] public class ZoneSubscriptionDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions var client = GetClient(); // Act - var response = await client.ZoneSubscriptionDetails(ZoneId); + var response = await client.ZoneSubscriptionDetails(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/subscription", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/subscription", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs index 81292c7..d758980 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class CreateZoneTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -105,39 +107,36 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.CreateZone(_request); + var response = await client.CreateZone(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual("/zones", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual("/zones", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.AccountId, callback.Request.Account.Id); - Assert.AreEqual(_request.Name, callback.Request.Name); - Assert.AreEqual(_request.Type, callback.Request.Type); + Assert.AreEqual(_request.AccountId, request.Account.Id); + Assert.AreEqual(_request.Name, request.Name); + Assert.AreEqual(_request.Type, request.Type); _clientMock.Verify(m => m.PostAsync("/zones", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionOnInvalidType() { // Arrange _request.Type = 0; var client = GetClient(); - // Act - await client.CreateZone(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.CreateZone(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs index e002312..976bcfd 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class DeleteZoneTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -46,18 +48,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.DeleteZone(ZoneId); + var response = await client.DeleteZone(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs index 19fd96e..5cd3bed 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class EditZoneTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -104,22 +106,22 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.EditZone(_request); + var response = await client.EditZone(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNotNull(request); - Assert.IsTrue(callback.Request.Paused); - Assert.IsNull(callback.Request.Type); - Assert.IsNull(callback.Request.VanityNameServers); + Assert.IsTrue(request.Paused); + Assert.IsNull(request.Type); + Assert.IsNull(request.VanityNameServers); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -134,22 +136,22 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.EditZone(_request); + var response = await client.EditZone(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNotNull(request); - Assert.IsNull(callback.Request.Paused); - Assert.AreEqual(_request.Type.Value, callback.Request.Type.Value); - Assert.IsNull(callback.Request.VanityNameServers); + Assert.IsNull(request.Paused); + Assert.AreEqual(_request.Type.Value, request.Type.Value); + Assert.IsNull(request.VanityNameServers); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -165,59 +167,52 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.EditZone(_request); + var response = await client.EditZone(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNotNull(request); - Assert.IsNull(callback.Request.Paused); - Assert.IsNull(callback.Request.Type); - Assert.AreEqual(2, callback.Request.VanityNameServers.Count); - Assert.IsTrue(callback.Request.VanityNameServers.Contains("ns1.example.org")); - Assert.IsTrue(callback.Request.VanityNameServers.Contains("ns2.example.org")); + Assert.IsNull(request.Paused); + Assert.IsNull(request.Type); + Assert.HasCount(2, request.VanityNameServers); + Assert.IsTrue(request.VanityNameServers.Contains("ns1.example.org")); + Assert.IsTrue(request.VanityNameServers.Contains("ns2.example.org")); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(CloudflareException))] public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet1() { // Arrange _request.VanityNameServers = null; var client = GetClient(); - // Act - await client.EditZone(_request); - - // Assert - CloudflareException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token)); } [TestMethod] - [ExpectedException(typeof(CloudflareException))] public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet2() { // Arrange _request.Paused = null; var client = GetClient(); - // Act - await client.EditZone(_request); - - // Assert - CloudflareException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token)); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidType() { // Arrange @@ -226,10 +221,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions _request.VanityNameServers = null; var client = GetClient(); - // Act - await client.EditZone(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs index f67ac3b..c98175d 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class ListZonesTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -102,18 +104,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.ListZones(); + var response = await client.ListZones(cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual("/zones", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual("/zones", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>("/zones", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -131,18 +133,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.ListZones(filter); + var response = await client.ListZones(filter, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual("/zones", callback.RequestPath); - Assert.AreEqual(filter, callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual("/zones", requestPath); + Assert.AreEqual(filter, queryFilter); _clientMock.Verify(m => m.GetAsync>("/zones", filter, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -159,7 +161,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -184,7 +186,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(9, dict.Count); + Assert.HasCount(9, dict); Assert.IsTrue(dict.ContainsKey("account.id")); Assert.IsTrue(dict.ContainsKey("account.name")); @@ -224,7 +226,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -244,7 +246,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -261,7 +263,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -278,7 +280,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -294,11 +296,11 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions }; // Act - var dict = new Dictionary(); + var dict = filter.GetQueryParameters(); // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -315,7 +317,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -332,7 +334,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -351,7 +353,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -368,7 +370,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs index 488c163..26bb2ea 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class RerunActivationCheckTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -46,18 +48,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.RerunActivationCheck(ZoneId); + var response = await client.RerunActivationCheck(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/activation_check", callback.RequestPath); - Assert.IsNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/activation_check", requestPath); + Assert.IsNull(request); _clientMock.Verify(m => m.PutAsync($"/zones/{ZoneId}/activation_check", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs index fc435db..dcfc6a0 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class ZoneDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -92,18 +94,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.ZoneDetails(ZoneId); + var response = await client.ZoneDetails(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls();