internal async Task <PVOutputArrayResponse <TResponseContentType> > ExecuteArrayRequestAsync <TResponseContentType>(IRequest request, Dictionary <string, object> loggingScope, CancellationToken cancellationToken) { HttpResponseMessage responseMessage = null; try { using (Logger.BeginScope(loggingScope)) { using (HttpRequestMessage requestMessage = CreateRequestMessage(request)) { responseMessage = await ExecuteRequestAsync(requestMessage, cancellationToken).ConfigureAwait(false); } Stream responseStream = await GetResponseContentStreamAsync(responseMessage).ConfigureAwait(false); var result = new PVOutputArrayResponse <TResponseContentType>(); result.ApiRateInformation = GetApiRateInformationfromResponse(responseMessage); if (ResponseIsErrorResponse(responseMessage, responseStream, result)) { return(result); } IArrayStringReader <TResponseContentType> reader = StringFactoryContainer.CreateArrayReader <TResponseContentType>(); IEnumerable <TResponseContentType> content = await reader.ReadArrayAsync(responseStream, cancellationToken).ConfigureAwait(false); result.IsSuccess = true; result.Values = content; return(result); } } finally { responseMessage.Dispose(); } }
protected static void AssertStandardResponse <TResponseContentType>(PVOutputArrayResponse <TResponseContentType> response) { Assert.Multiple(() => { Assert.That(response.Error, Is.Null); Assert.That(response.HasValues, Is.True); Assert.That(response.IsSuccess, Is.True); Assert.That(response.Values, Is.Not.Null); }); }
public async Task FavouriteService_GetSingle() { PVOutputClient client = TestUtility.GetMockClient(out MockHttpMessageHandler testProvider); testProvider.ExpectUriFromBase(GETFAVOURITE_URL) .RespondPlainText(FAVOURITE_RESPONSE_SINGLE); PVOutputArrayResponse <IFavourite> response = await client.Favourite.GetFavouritesAsync(); testProvider.VerifyNoOutstandingExpectation(); AssertStandardResponse(response); }
public void PVOutputArrayResponse_IsEquivalentTo_ReturnsEquivelanceNotEquals() { var response1 = new PVOutputArrayResponse <IStatus>() { IsSuccess = true, Values = new List <Status>() }; var response2 = new PVOutputArrayResponse <IStatus>() { IsSuccess = true, Values = new List <Status>() }; var response3 = new PVOutputArrayResponse <IStatus>() { IsSuccess = false }; Assert.Multiple(() => { Assert.That(response1.IsEquivalentTo(response2), Is.True); Assert.That(response1.IsEquivalentTo(response3), Is.False); }); }