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); }
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); }
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); }
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>()); }
protected override TokenBase GetToken() { var request = new BasicApiRequest("https://dragon6.dragonfruit.network/api/v2/dev/token").WithAuthHeader($"Dragon6-Api {_apiKey}"); return(Perform <Dragon6Token>(request)); }