public void TestSslVerificationHandler()
        {
            var request = new BasicApiRequest("http://wrong.host.badssl.com/");

            try
            {
                Client.Perform(request);
                Assert.Fail("Request must fail when SSL validation is enabled");
            }
            // .NET Standard 2 returns aggregate exception
            catch (AggregateException e)
            {
                var innerExceptions = e.InnerExceptions.Select(x => x.InnerException);
                Assert.IsTrue(innerExceptions.Any(x => x is AuthenticationException));
            }
            // .NET 5 returns a non-aggregated copy of above
            catch (HttpRequestException e)
            {
                Assert.IsTrue(e.InnerException is AuthenticationException);
            }

            // set handler and go again
            Client.Handler = () => new InsecureSslVerificationHandler();
            Assert.IsTrue(Client.Perform(request).IsSuccessStatusCode);
        }
        public void TestJsonDeserialization()
        {
            // returns 5000 entries in an array
            var testRequest = new BasicApiRequest("https://jsonplaceholder.typicode.com/photos");
            var images      = Client.Perform <DummyImage[]>(testRequest);

            Assert.AreEqual(5000, images.Length);
        }
        public async Task TestBasicRequest()
        {
            var request = new BasicApiRequest("https://api.steampowered.com/ISteamNews/GetNewsForApp/v0002/")
                          .WithQuery("appid", "440")
                          .WithQuery("count", "3")
                          .WithQuery("maxlength", "300")
                          .WithQuery("format", "json");

            using var result = await Client.PerformAsync(request);

            Assert.IsTrue(result.IsSuccessStatusCode);
        }
Exemple #4
0
        public async void BasicApiRequest_GetRequestTest()
        {
            const string endpoint = "https://httpbin.org/anything";
            var          request  = new BasicApiRequest();
            var          json     = await request.GetAsync(endpoint);

            Assert.NotNull(json);
            var result = JsonConvert.DeserializeObject <BinResult>(json);

            Assert.NotNull(result);
            Assert.Equal("GET", result.Method);
            Assert.Equal(endpoint, result.Url);
        }
Exemple #5
0
        public async void ApiRequest_DeleteRequestTest()
        {
            const string endpoint = "https://httpbin.org/anything";
            const string jsonText = @"{ 
                    ""CaseID"": ""Unique File Name"",
                    ""Content"": ""StreamValue""
                    }";

            var request  = new BasicApiRequest();
            var jsonBody = JToken.Parse(jsonText);
            var result   = await request.DeleteAsync(endpoint, jsonBody);

            Assert.True(result);
        }
Exemple #6
0
        public async void ApiRequest_PutRequestTest()
        {
            const string endpoint = "https://httpbin.org/anything";
            const string jsonText = @"{ 
                    ""CaseID"": ""Unique File Name"",
                    ""Content"": ""StreamValue""
                    }";

            var request = new BasicApiRequest();

            var jsonBody = JToken.Parse(jsonText);

            var json = await request.PutAsync(endpoint, jsonBody);

            Assert.NotNull(json);

            var result = JsonConvert.DeserializeObject <BinResult>(json);

            Assert.NotNull(result);
            Assert.Equal("PUT", result.Method);
            Assert.Equal(endpoint, result.Url);
            Assert.Equal("Unique File Name", result.Json["CaseID"]?.Value <string>());
            Assert.Equal("StreamValue", result.Json["Content"]?.Value <string>());
        }
Exemple #7
0
        protected override TokenBase GetToken()
        {
            var request = new BasicApiRequest("https://dragon6.dragonfruit.network/api/v2/dev/token").WithAuthHeader($"Dragon6-Api {_apiKey}");

            return(Perform <Dragon6Token>(request));
        }