Updated ZONE unit tests to latest recommendations

This commit is contained in:
2025-08-08 17:59:25 +02:00
parent b806fcda4a
commit ab510a85fc
23 changed files with 265 additions and 246 deletions

View File

@@ -11,8 +11,9 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
[TestClass] [TestClass]
public class GetDomainTest 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 const string DomainName = "example.com";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -36,16 +37,16 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var result = await client.GetDomain(AccountId, DomainName); var result = await client.GetDomain(AccountId, DomainName, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.AreEqual(_response, result); Assert.AreEqual(_response, result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", callback.RequestPath); Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JToken>($"/accounts/{AccountId}/registrar/domains/{DomainName}", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<JToken>($"/accounts/{AccountId}/registrar/domains/{DomainName}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -55,16 +56,13 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
[DataRow(null)] [DataRow(null)]
[DataRow("")] [DataRow("")]
[DataRow(" ")] [DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName) public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName)
{ {
// Arrange // Arrange
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
var result = await client.GetDomain(AccountId, domainName); await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () => await client.GetDomain(AccountId, domainName, TestContext.CancellationTokenSource.Token));
// Assert - ArgumentNullException
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
[TestClass] [TestClass]
public class ListDomainsTest public class ListDomainsTest
{ {
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -33,16 +35,16 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var result = await client.ListDomains(AccountId); var result = await client.ListDomains(AccountId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.AreEqual(_response, result); Assert.AreEqual(_response, result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/registrar/domains", callback.RequestPath); Assert.AreEqual($"/accounts/{AccountId}/registrar/domains", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<Domain>>($"/accounts/{AccountId}/registrar/domains", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<Domain>>($"/accounts/{AccountId}/registrar/domains", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -12,8 +12,9 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
[TestClass] [TestClass]
public class UpdateDomainTest 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 const string DomainName = "example.com";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -45,20 +46,20 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var result = await client.UpdateDomain(_request); var result = await client.UpdateDomain(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.AreEqual(_response, result); Assert.AreEqual(_response, result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", callback.RequestPath); Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual(_request.AutoRenew, callback.Request.AutoRenew); Assert.AreEqual(_request.AutoRenew, request.AutoRenew);
Assert.AreEqual(_request.Locked, callback.Request.Locked); Assert.AreEqual(_request.Locked, request.Locked);
Assert.AreEqual(_request.Privacy, callback.Request.Privacy); Assert.AreEqual(_request.Privacy, request.Privacy);
_clientMock.Verify(m => m.PutAsync<JToken, InternalUpdateDomainRequest>($"/accounts/{AccountId}/registrar/domains/{DomainName}", It.IsAny<InternalUpdateDomainRequest>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PutAsync<JToken, InternalUpdateDomainRequest>($"/accounts/{AccountId}/registrar/domains/{DomainName}", It.IsAny<InternalUpdateDomainRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -68,17 +69,14 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions
[DataRow(null)] [DataRow(null)]
[DataRow("")] [DataRow("")]
[DataRow(" ")] [DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName) public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName)
{ {
// Arrange // Arrange
_request.DomainName = domainName; _request.DomainName = domainName;
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
var result = await client.UpdateDomain(_request); await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () => await client.UpdateDomain(_request, TestContext.CancellationTokenSource.Token));
// Assert - ArgumentNullException
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
[TestClass] [TestClass]
public class CreateZoneHoldTest public class CreateZoneHoldTest
{ {
public TestContext TestContext { get; set; }
private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc);
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
@@ -54,21 +56,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.CreateZoneHold(_request); var response = await client.CreateZoneHold(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath);
Assert.IsNotNull(callback.QueryFilter); Assert.IsNotNull(queryFilter);
Assert.IsInstanceOfType<InternalCreateZoneHoldFilter>(callback.QueryFilter); Assert.IsInstanceOfType<InternalCreateZoneHoldFilter>(queryFilter);
Assert.IsNull(((InternalCreateZoneHoldFilter)callback.QueryFilter).IncludeSubdomains); Assert.IsNull(((InternalCreateZoneHoldFilter)queryFilter).IncludeSubdomains);
_clientMock.Verify(m => m.PostAsync<ZoneHold, object>($"/zones/{ZoneId}/hold", null, It.IsAny<InternalCreateZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PostAsync<ZoneHold, object>($"/zones/{ZoneId}/hold", null, It.IsAny<InternalCreateZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -82,21 +84,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.CreateZoneHold(_request); var response = await client.CreateZoneHold(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath);
Assert.IsNotNull(callback.QueryFilter); Assert.IsNotNull(queryFilter);
Assert.IsInstanceOfType<InternalCreateZoneHoldFilter>(callback.QueryFilter); Assert.IsInstanceOfType<InternalCreateZoneHoldFilter>(queryFilter);
Assert.IsTrue(((InternalCreateZoneHoldFilter)callback.QueryFilter).IncludeSubdomains); Assert.IsTrue(((InternalCreateZoneHoldFilter)queryFilter).IncludeSubdomains);
_clientMock.Verify(m => m.PostAsync<ZoneHold, object>($"/zones/{ZoneId}/hold", null, It.IsAny<InternalCreateZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PostAsync<ZoneHold, object>($"/zones/{ZoneId}/hold", null, It.IsAny<InternalCreateZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -113,7 +115,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -129,7 +131,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(1, dict.Count); Assert.HasCount(1, dict);
Assert.IsTrue(dict.ContainsKey("include_subdomains")); Assert.IsTrue(dict.ContainsKey("include_subdomains"));
Assert.AreEqual(includeSubdomains.ToString().ToLower(), dict["include_subdomains"]); Assert.AreEqual(includeSubdomains.ToString().ToLower(), dict["include_subdomains"]);
} }

View File

@@ -10,7 +10,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
[TestClass] [TestClass]
public class GetZoneHoldTest 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 const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -49,18 +51,18 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.GetZoneHold(ZoneId); var response = await client.GetZoneHold(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<ZoneHold>($"/zones/{ZoneId}/hold", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<ZoneHold>($"/zones/{ZoneId}/hold", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -11,8 +11,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
[TestClass] [TestClass]
public class RemoveZoneHoldTest public class RemoveZoneHoldTest
{ {
// Local: Europe/Berlin (Germany) - [CEST +2] | CET +1 public TestContext TestContext { get; set; }
private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Unspecified);
private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc);
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -55,21 +56,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.RemoveZoneHold(_request); var response = await client.RemoveZoneHold(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath);
Assert.IsNotNull(callback.QueryFilter); Assert.IsNotNull(queryFilter);
Assert.IsInstanceOfType<InternalRemoveZoneHoldFilter>(callback.QueryFilter); Assert.IsInstanceOfType<InternalRemoveZoneHoldFilter>(queryFilter);
Assert.IsNull(((InternalRemoveZoneHoldFilter)callback.QueryFilter).HoldAfter); Assert.IsNull(((InternalRemoveZoneHoldFilter)queryFilter).HoldAfter);
_clientMock.Verify(m => m.DeleteAsync<ZoneHold>($"/zones/{ZoneId}/hold", It.IsAny<InternalRemoveZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.DeleteAsync<ZoneHold>($"/zones/{ZoneId}/hold", It.IsAny<InternalRemoveZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -83,21 +84,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.RemoveZoneHold(_request); var response = await client.RemoveZoneHold(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath);
Assert.IsNotNull(callback.QueryFilter); Assert.IsNotNull(queryFilter);
Assert.IsInstanceOfType<InternalRemoveZoneHoldFilter>(callback.QueryFilter); Assert.IsInstanceOfType<InternalRemoveZoneHoldFilter>(queryFilter);
Assert.AreEqual(_date, ((InternalRemoveZoneHoldFilter)callback.QueryFilter).HoldAfter); Assert.AreEqual(_date, ((InternalRemoveZoneHoldFilter)queryFilter).HoldAfter);
_clientMock.Verify(m => m.DeleteAsync<ZoneHold>($"/zones/{ZoneId}/hold", It.IsAny<InternalRemoveZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.DeleteAsync<ZoneHold>($"/zones/{ZoneId}/hold", It.IsAny<InternalRemoveZoneHoldFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -114,7 +115,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -128,9 +129,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(1, dict.Count); Assert.HasCount(1, dict);
Assert.IsTrue(dict.ContainsKey("hold_after")); 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() private ICloudflareClient GetClient()

View File

@@ -11,7 +11,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
[TestClass] [TestClass]
public class UpdateZoneHoldTest 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 const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -58,21 +60,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.UpdateZoneHold(_request); var response = await client.UpdateZoneHold(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/hold", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual(_date, callback.Request.HoldAfter); Assert.AreEqual(_date, request.HoldAfter);
Assert.IsTrue(callback.Request.IncludeSubdomains); Assert.IsTrue(request.IncludeSubdomains);
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions
[TestClass] [TestClass]
public class AvailablePlanDetailsTest public class AvailablePlanDetailsTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string PlanId = "023e105f4ecef8ad9ca31a8372d0c354"; private const string PlanId = "023e105f4ecef8ad9ca31a8372d0c354";
@@ -44,18 +46,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.AvailablePlanDetails(ZoneId, PlanId); var response = await client.AvailablePlanDetails(ZoneId, PlanId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/available_plans/{PlanId}", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/available_plans/{PlanId}", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<AvailableRatePlan>($"/zones/{ZoneId}/available_plans/{PlanId}", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<AvailableRatePlan>($"/zones/{ZoneId}/available_plans/{PlanId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions
[TestClass] [TestClass]
public class ListAvailablePlansTest public class ListAvailablePlansTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.ListAvailablePlans(ZoneId); var response = await client.ListAvailablePlans(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/available_plans", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/available_plans", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<AvailableRatePlan>>($"/zones/{ZoneId}/available_plans", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<AvailableRatePlan>>($"/zones/{ZoneId}/available_plans", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions
[TestClass] [TestClass]
public class ListAvailableRatePlansTest public class ListAvailableRatePlansTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.ListAvailableRatePlans(ZoneId); var response = await client.ListAvailableRatePlans(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/available_rate_plans", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/available_rate_plans", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<RatePlanGetResponse>($"/zones/{ZoneId}/available_rate_plans", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<RatePlanGetResponse>($"/zones/{ZoneId}/available_rate_plans", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
[TestClass] [TestClass]
public class EditMultipleZoneSettingsTest public class EditMultipleZoneSettingsTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -57,7 +59,7 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
// Act // Act
#pragma warning disable CS0618 #pragma warning disable CS0618
var response = await client.EditMultipleZoneSettings(_request); var response = await client.EditMultipleZoneSettings(_request, TestContext.CancellationTokenSource.Token);
#pragma warning restore CS0618 #pragma warning restore CS0618
// Assert // Assert
@@ -65,16 +67,16 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/settings", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/settings", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual(2, callback.Request.Count); Assert.HasCount(2, request);
Assert.IsInstanceOfType<SSL>(callback.Request.First()); Assert.IsInstanceOfType<SSL>(request.First());
Assert.IsInstanceOfType<WebP>(callback.Request.Last()); Assert.IsInstanceOfType<WebP>(request.Last());
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
[TestClass] [TestClass]
public class EditZoneSettingTest public class EditZoneSettingTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -51,21 +53,21 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.EditZoneSetting(_request); var response = await client.EditZoneSetting(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual("origin_pull", callback.Request["value"]); Assert.AreEqual("origin_pull", request["value"]);
Assert.IsFalse(callback.Request.ContainsKey("enabled")); Assert.IsFalse(request.ContainsKey("enabled"));
} }
[TestMethod] [TestMethod]
@@ -78,35 +80,32 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.EditZoneSetting(_request); var response = await client.EditZoneSetting(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual(enabled, callback.Request["enabled"]); Assert.AreEqual(enabled, request["enabled"]);
Assert.IsFalse(callback.Request.ContainsKey("value")); Assert.IsFalse(request.ContainsKey("value"));
} }
[TestMethod] [TestMethod]
[ExpectedException(typeof(ArgumentException))]
public async Task ShouldThrowArgumentException() public async Task ShouldThrowArgumentException()
{ {
// Arrange // Arrange
var request = new EditZoneSettingRequest<TestSetting>(ZoneId, new TestSetting()); var request = new EditZoneSettingRequest<TestSetting>(ZoneId, new TestSetting());
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
var response = await client.EditZoneSetting(request); await Assert.ThrowsExactlyAsync<ArgumentException>(async () => await client.EditZoneSetting(request, TestContext.CancellationTokenSource.Token));
// Assert - ArgumentException
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
[TestClass] [TestClass]
public class GetAllZoneSettingsTest public class GetAllZoneSettingsTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -47,7 +49,7 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
// Act // Act
#pragma warning disable CS0618 #pragma warning disable CS0618
var response = await client.GetAllZoneSettings(ZoneId); var response = await client.GetAllZoneSettings(ZoneId, TestContext.CancellationTokenSource.Token);
#pragma warning restore CS0618 #pragma warning restore CS0618
// Assert // Assert
@@ -55,11 +57,11 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/settings", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/settings", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<ZoneSettingBase>>($"/zones/{ZoneId}/settings", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<ZoneSettingBase>>($"/zones/{ZoneId}/settings", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
[TestClass] [TestClass]
public class GetZoneSettingTest public class GetZoneSettingTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -43,34 +45,31 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.GetZoneSetting<SSL>(ZoneId); var response = await client.GetZoneSetting<SSL>(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<SSL>($"/zones/{ZoneId}/settings/ssl", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<SSL>($"/zones/{ZoneId}/settings/ssl", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
} }
[TestMethod] [TestMethod]
[ExpectedException(typeof(ArgumentException))]
public async Task ShouldThrowArgumentException() public async Task ShouldThrowArgumentException()
{ {
// Arrange // Arrange
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
var response = await client.GetZoneSetting<TestSetting>(ZoneId); await Assert.ThrowsExactlyAsync<ArgumentException>(async () => await client.GetZoneSetting<TestSetting>(ZoneId, TestContext.CancellationTokenSource.Token));
// Assert - ArgumentException
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions
[TestClass] [TestClass]
public class CreateZoneSubscriptionTest public class CreateZoneSubscriptionTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -56,21 +58,21 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.CreateZoneSubscription(_request); var response = await client.CreateZoneSubscription(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/subscription", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual(_request.Frequency, callback.Request.Frequency); Assert.AreEqual(_request.Frequency, request.Frequency);
Assert.AreEqual(_request.RatePlan, callback.Request.RatePlan); Assert.AreEqual(_request.RatePlan, request.RatePlan);
_clientMock.Verify(m => m.PostAsync<Subscription, InternalCreateZoneSubscriptionRequest>($"/zones/{ZoneId}/subscription", It.IsAny<InternalCreateZoneSubscriptionRequest>(), null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PostAsync<Subscription, InternalCreateZoneSubscriptionRequest>($"/zones/{ZoneId}/subscription", It.IsAny<InternalCreateZoneSubscriptionRequest>(), null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions
[TestClass] [TestClass]
public class UpdateZoneSubscriptionTest public class UpdateZoneSubscriptionTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -56,21 +58,21 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.UpdateZoneSubscription(_request); var response = await client.UpdateZoneSubscription(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/subscription", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual(_request.Frequency, callback.Request.Frequency); Assert.AreEqual(_request.Frequency, request.Frequency);
Assert.AreEqual(_request.RatePlan, callback.Request.RatePlan); Assert.AreEqual(_request.RatePlan, request.RatePlan);
_clientMock.Verify(m => m.PutAsync<Subscription, InternalUpdateZoneSubscriptionRequest>($"/zones/{ZoneId}/subscription", It.IsAny<InternalUpdateZoneSubscriptionRequest>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PutAsync<Subscription, InternalUpdateZoneSubscriptionRequest>($"/zones/{ZoneId}/subscription", It.IsAny<InternalUpdateZoneSubscriptionRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions
[TestClass] [TestClass]
public class ZoneSubscriptionDetailsTest public class ZoneSubscriptionDetailsTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.ZoneSubscriptionDetails(ZoneId); var response = await client.ZoneSubscriptionDetails(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/subscription", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<Subscription>($"/zones/{ZoneId}/subscription", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<Subscription>($"/zones/{ZoneId}/subscription", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
[TestClass] [TestClass]
public class CreateZoneTest public class CreateZoneTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -105,39 +107,36 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.CreateZone(_request); var response = await client.CreateZone(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual("/zones", callback.RequestPath); Assert.AreEqual("/zones", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.AreEqual(_request.AccountId, callback.Request.Account.Id); Assert.AreEqual(_request.AccountId, request.Account.Id);
Assert.AreEqual(_request.Name, callback.Request.Name); Assert.AreEqual(_request.Name, request.Name);
Assert.AreEqual(_request.Type, callback.Request.Type); Assert.AreEqual(_request.Type, request.Type);
_clientMock.Verify(m => m.PostAsync<Zone, InternalCreateZoneRequest>("/zones", It.IsAny<InternalCreateZoneRequest>(), It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PostAsync<Zone, InternalCreateZoneRequest>("/zones", It.IsAny<InternalCreateZoneRequest>(), It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
} }
[TestMethod] [TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionOnInvalidType() public async Task ShouldThrowArgumentOutOfRangeExceptionOnInvalidType()
{ {
// Arrange // Arrange
_request.Type = 0; _request.Type = 0;
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
await client.CreateZone(_request); await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () => await client.CreateZone(_request, TestContext.CancellationTokenSource.Token));
// Assert - ArgumentOutOfRangeException
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
[TestClass] [TestClass]
public class DeleteZoneTest public class DeleteZoneTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -46,18 +48,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.DeleteZone(ZoneId); var response = await client.DeleteZone(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.DeleteAsync<Identifier>($"/zones/{ZoneId}", It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.DeleteAsync<Identifier>($"/zones/{ZoneId}", It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
[TestClass] [TestClass]
public class EditZoneTest public class EditZoneTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -104,22 +106,22 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.EditZone(_request); var response = await client.EditZone(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.IsTrue(callback.Request.Paused); Assert.IsTrue(request.Paused);
Assert.IsNull(callback.Request.Type); Assert.IsNull(request.Type);
Assert.IsNull(callback.Request.VanityNameServers); Assert.IsNull(request.VanityNameServers);
_clientMock.Verify(m => m.PatchAsync<Zone, InternalEditZoneRequest>($"/zones/{ZoneId}", It.IsAny<InternalEditZoneRequest>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PatchAsync<Zone, InternalEditZoneRequest>($"/zones/{ZoneId}", It.IsAny<InternalEditZoneRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -134,22 +136,22 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.EditZone(_request); var response = await client.EditZone(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.IsNull(callback.Request.Paused); Assert.IsNull(request.Paused);
Assert.AreEqual(_request.Type.Value, callback.Request.Type.Value); Assert.AreEqual(_request.Type.Value, request.Type.Value);
Assert.IsNull(callback.Request.VanityNameServers); Assert.IsNull(request.VanityNameServers);
_clientMock.Verify(m => m.PatchAsync<Zone, InternalEditZoneRequest>($"/zones/{ZoneId}", It.IsAny<InternalEditZoneRequest>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PatchAsync<Zone, InternalEditZoneRequest>($"/zones/{ZoneId}", It.IsAny<InternalEditZoneRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -165,59 +167,52 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.EditZone(_request); var response = await client.EditZone(_request, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}", requestPath);
Assert.IsNotNull(callback.Request); Assert.IsNotNull(request);
Assert.IsNull(callback.Request.Paused); Assert.IsNull(request.Paused);
Assert.IsNull(callback.Request.Type); Assert.IsNull(request.Type);
Assert.AreEqual(2, callback.Request.VanityNameServers.Count); Assert.HasCount(2, request.VanityNameServers);
Assert.IsTrue(callback.Request.VanityNameServers.Contains("ns1.example.org")); Assert.IsTrue(request.VanityNameServers.Contains("ns1.example.org"));
Assert.IsTrue(callback.Request.VanityNameServers.Contains("ns2.example.org")); Assert.IsTrue(request.VanityNameServers.Contains("ns2.example.org"));
_clientMock.Verify(m => m.PatchAsync<Zone, InternalEditZoneRequest>($"/zones/{ZoneId}", It.IsAny<InternalEditZoneRequest>(), It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PatchAsync<Zone, InternalEditZoneRequest>($"/zones/{ZoneId}", It.IsAny<InternalEditZoneRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
} }
[TestMethod] [TestMethod]
[ExpectedException(typeof(CloudflareException))]
public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet1() public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet1()
{ {
// Arrange // Arrange
_request.VanityNameServers = null; _request.VanityNameServers = null;
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
await client.EditZone(_request); await Assert.ThrowsExactlyAsync<CloudflareException>(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token));
// Assert - CloudflareException
} }
[TestMethod] [TestMethod]
[ExpectedException(typeof(CloudflareException))]
public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet2() public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet2()
{ {
// Arrange // Arrange
_request.Paused = null; _request.Paused = null;
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
await client.EditZone(_request); await Assert.ThrowsExactlyAsync<CloudflareException>(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token));
// Assert - CloudflareException
} }
[TestMethod] [TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidType() public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidType()
{ {
// Arrange // Arrange
@@ -226,10 +221,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
_request.VanityNameServers = null; _request.VanityNameServers = null;
var client = GetClient(); var client = GetClient();
// Act // Act & Assert
await client.EditZone(_request); await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token));
// Assert - ArgumentOutOfRangeException
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
[TestClass] [TestClass]
public class ListZonesTest public class ListZonesTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -102,18 +104,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.ListZones(); var response = await client.ListZones(cancellationToken: TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual("/zones", callback.RequestPath); Assert.AreEqual("/zones", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<Zone>>("/zones", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<Zone>>("/zones", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -131,18 +133,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.ListZones(filter); var response = await client.ListZones(filter, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual("/zones", callback.RequestPath); Assert.AreEqual("/zones", requestPath);
Assert.AreEqual(filter, callback.QueryFilter); Assert.AreEqual(filter, queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<Zone>>("/zones", filter, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<Zone>>("/zones", filter, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();
@@ -159,7 +161,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -184,7 +186,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(9, dict.Count); Assert.HasCount(9, dict);
Assert.IsTrue(dict.ContainsKey("account.id")); Assert.IsTrue(dict.ContainsKey("account.id"));
Assert.IsTrue(dict.ContainsKey("account.name")); Assert.IsTrue(dict.ContainsKey("account.name"));
@@ -224,7 +226,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -244,7 +246,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -261,7 +263,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -278,7 +280,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -294,11 +296,11 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
}; };
// Act // Act
var dict = new Dictionary<string, object>(); var dict = filter.GetQueryParameters();
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -315,7 +317,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -332,7 +334,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -351,7 +353,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
[TestMethod] [TestMethod]
@@ -368,7 +370,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
// Assert // Assert
Assert.IsNotNull(dict); Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count); Assert.IsEmpty(dict);
} }
private ICloudflareClient GetClient() private ICloudflareClient GetClient()

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
[TestClass] [TestClass]
public class RerunActivationCheckTest public class RerunActivationCheckTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -46,18 +48,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.RerunActivationCheck(ZoneId); var response = await client.RerunActivationCheck(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/activation_check", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}/activation_check", requestPath);
Assert.IsNull(callback.Request); Assert.IsNull(request);
_clientMock.Verify(m => m.PutAsync<Identifier, object>($"/zones/{ZoneId}/activation_check", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.PutAsync<Identifier, object>($"/zones/{ZoneId}/activation_check", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
[TestClass] [TestClass]
public class ZoneDetailsTest public class ZoneDetailsTest
{ {
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock; private Mock<ICloudflareClient> _clientMock;
@@ -92,18 +94,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions
var client = GetClient(); var client = GetClient();
// Act // Act
var response = await client.ZoneDetails(ZoneId); var response = await client.ZoneDetails(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert // Assert
Assert.IsNotNull(response); Assert.IsNotNull(response);
Assert.IsTrue(response.Success); Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result); Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count); Assert.HasCount(1, _callbacks);
var callback = _callbacks.First(); var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}", callback.RequestPath); Assert.AreEqual($"/zones/{ZoneId}", requestPath);
Assert.IsNull(callback.QueryFilter); Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<Zone>($"/zones/{ZoneId}", null, It.IsAny<CancellationToken>()), Times.Once); _clientMock.Verify(m => m.GetAsync<Zone>($"/zones/{ZoneId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls(); _clientMock.VerifyNoOtherCalls();