public async Task <Dictionary <int, string> > GetRocketsAsync(CancellationToken cancellationToken) { var relativeUrl = $"?filter=id,rocket_id"; var jsonHttpRequestHandler = new JsonHttpRequestHandler <List <SpacexRocketBase> >(httpClient); List <SpacexRocketBase> spacexRocketBases = await jsonHttpRequestHandler.Handle(HttpMethod.Get, relativeUrl, cancellationToken); return(spacexRocketBases.ToDictionary(r => r.id, r => r.rocket_id)); }
public async Task <SpacexRocket> GetRocketAsync(string rocketId, CancellationToken cancellationToken) { var relativeUrl = $"/{rocketId}?filter=id,active,height/meters,diameter/meters,mass/kg,payload_weights,engines/thrust_to_weight,rocket_name,rocket_id"; var jsonHttpRequestHandler = new JsonHttpRequestHandler <SpacexRocket>(httpClient); SpacexRocket spacexRocket = await jsonHttpRequestHandler.Handle(HttpMethod.Get, relativeUrl, cancellationToken); return(spacexRocket); }
public async Task Handle_ShouldThrowFormatException() { foreach (int SuccessStatusCode in successStatusCodes) { Mock <HttpMessageHandler> handlerMock = GetMockedHandler(spacexRocketBaseListInvalidJson, (HttpStatusCode)SuccessStatusCode); HttpClient httpClient = GetClient(spacexRocketsBaseAddress, handlerMock); var jsonHttpRequestHandler = new JsonHttpRequestHandler <List <SpacexRocketBaseTest> >(httpClient); var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, new Uri($"{spacexRocketsBaseAddress}{spacexRocketsRelativeUrl}")); // Testing both handle overloads await Assert.ThrowsAsync <FormatException>( () => jsonHttpRequestHandler.Handle(HttpMethod.Get, spacexRocketsRelativeUrl, cts.Token)); await Assert.ThrowsAsync <FormatException>( () => jsonHttpRequestHandler.Handle(httpRequestMessage, cts.Token)); } }
public async Task Handle_SpacexRocketBaseListShouldParse() { foreach (int SuccessStatusCode in successStatusCodes) { Mock <HttpMessageHandler> handlerMock = GetMockedHandler(spacexRocketBaseListJson, (HttpStatusCode)SuccessStatusCode); HttpClient httpClient = GetClient(spacexRocketsBaseAddress, handlerMock); var jsonHttpRequestHandler = new JsonHttpRequestHandler <List <SpacexRocketBaseTest> >(httpClient); var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, new Uri($"{spacexRocketsBaseAddress}{spacexRocketsRelativeUrl}")); List <SpacexRocketBaseTest> expected = GetSpacexRocketBaseList(); var expectedUri = new Uri(spacexRocketsBaseAddress + spacexRocketsRelativeUrl); // Testing both handle overloads. var actuals = new List <List <SpacexRocketBaseTest> >(); actuals.Add(await jsonHttpRequestHandler.Handle(HttpMethod.Get, spacexRocketsRelativeUrl, cts.Token)); actuals.Add(await jsonHttpRequestHandler.Handle(httpRequestMessage, cts.Token)); foreach (var actual in actuals) { Assert.NotNull(actual); Assert.True(actual.Count == expected.Count); for (int i = 0; i < actual.Count; i++) { Assert.True(actual[i].Equals(expected[i])); } } handlerMock.Protected().Verify( "SendAsync", Times.Exactly(2), ItExpr.Is <HttpRequestMessage>(req => req.Method == HttpMethod.Get && req.RequestUri == expectedUri ), ItExpr.IsAny <CancellationToken>() ); } }