public async Task CloudflareApi_GetZoneDetails_ThrowsAHttpExceptionForAnUnSuccessfullStatusCode() { // Given var zoneId = "123"; var apiToken = "456"; _mockHttp .Expect($"{CloudflareApi.ENDPOINT}/zones/{zoneId}") .WithHeaders(new Dictionary <string, string> { { "Authorization", $"Bearer {apiToken}" }, }) .RespondWithJson(HttpStatusCode.BadRequest, new { success = false, errors = new object[] { new { code = 123, message = "Something something error!" } }, messages = Array.Empty <string>(), }); // When var client = _mockHttp.ToHttpClient(); var cloudflare = new CloudflareApi(client, new CloudflareApiOptions(apiToken)); var exception = await Assert.ThrowsAsync <HttpRequestException>(() => cloudflare.GetZoneDetails(zoneId)); // Then Assert.Equal( "Response status code does not indicate success: 400 (Bad Request).", exception.Message ); _mockHttp.VerifyNoOutstandingRequest(); }
public async Task CloudflareApi_GetZoneDetails_ReturnsDetailsForTheRequestedZone() { // Given var zoneId = "123"; var apiToken = "456"; _mockHttp .Expect($"{CloudflareApi.ENDPOINT}/zones/{zoneId}") .WithHeaders(new Dictionary <string, string> { { "Authorization", $"Bearer {apiToken}" }, }) .RespondWithJson(new { success = true, errors = Array.Empty <object>(), messages = Array.Empty <string>(), result = new { id = zoneId, name = "dummy" } }); // When var client = _mockHttp.ToHttpClient(); var cloudflare = new CloudflareApi(client, new CloudflareApiOptions(apiToken)); var zone = await cloudflare.GetZoneDetails(zoneId); // Then Assert.Equal(zoneId, zone.Id); Assert.Equal("dummy", zone.Name); _mockHttp.VerifyNoOutstandingRequest(); }