private void Assert_FetchStreamResponseAsync_Can_Handle_Request( HttpStatusCode expectedHttpStatusCode, int expectedErrorCode, string expectedErrorMessage, int expectedRequestRetryCount) { var port = 40000; var requestHandlers = new List <MockHttpHandler>() { new MockHttpHandler(string.Empty, (request, response, prm) => { response.StatusCode = (int)expectedHttpStatusCode; response.StatusDescription = "Did something go wrong?!"; response.ContentType = "application/json"; return(@"{""error"":{ ""code"":" + expectedErrorCode + @",""message"":""" + expectedErrorMessage + @"""}}"); }) }; using (new MockServer(port, requestHandlers)) { var reponse = AbstractRemoteDataService.FetchStreamResponseAsync($"http://localhost:{port}", PoeSessionId, expectedRequestRetryCount, 1000).Result; Assert.True(reponse.StatusCode == expectedHttpStatusCode); Assert.True(reponse.Error != null); Assert.True(reponse.Error.Code == expectedErrorCode); Assert.True(reponse.Error.Message == expectedErrorMessage); Assert.True(reponse.RequestRetryCount == expectedRequestRetryCount); } }
public void FetchStreamResponseAsync_With_Invalid_Content_Throws() { var port = 40000; var requestHandlers = new List <MockHttpHandler>() { new MockHttpHandler(string.Empty, (request, response, prm) => { response .ContentType("application/json") .StatusCode((int)HttpStatusCode.OK) .Content(@"blablabla"); }) }; using (new MockServer(port, requestHandlers)) { Assert.Throws <AggregateException>(() => { var reponse = AbstractRemoteDataService.FetchDeserializedResponseAsync <PoeDataService.StashTabItemsJsonResponse>($"http://localhost:{port}", PoeSessionId, 8, 1000).Result; }); } }