Example #1
0
        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();
        }
Example #2
0
        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();
        }