public void ExtractedResponse_CanBeGeneratedFromRestResponse() { var bodyContent = "{\"test\":\"banana\"}"; var responseMock = new Mock <IRestResponse>(); responseMock.Setup(s => s.StatusCode).Returns(HttpStatusCode.NotFound); responseMock.Setup(s => s.Content).Returns(bodyContent); var response = new ExtractedResponse(responseMock.Object); response.Body.Should().Be(bodyContent); response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public async Task <ExtractedResponse> RouteRequest(ExtractedRequest request) { // Organise the path to the final endpoint string basePath = '/' + request.Path.Split('/')[1]; ExtractedResponse response = new ExtractedResponse(); // Get the correct endpoint for the route requested Route route; try { route = Endpoints.First(r => r.Endpoint.Equals(basePath)); } catch { throw new NotFoundCustomException("Route not found", $"Route matching {basePath} not found"); } if (route.Destination.RequiresAuthentication) { // Auth stuff would go here, throwing exception for now throw new NotAuthorizedCustomException("Unauthorized", "You do not have permission to access this resource"); } if (route.TransportType == TransportType.Http) { response = await httpClient.SendRequest(request, route); } else if (route.TransportType == TransportType.MessageQueue) { messageClient.PushMessageIntoQueue(request.GetJsonBytes(), route.Destination.MessageQueue); response.Body = "{message: \"Message client does not support responses at the moment\"}"; response.StatusCode = HttpStatusCode.OK; } return(response); }
public void ExtractedResponse_CanGenerateFromHttpResponse() { var bodyContent = "{\"test\":\"banana\"}"; var body = new MemoryStream(); var sw = new StreamWriter(body); var json = JsonConvert.SerializeObject(bodyContent); sw.Write(json); sw.Flush(); body.Position = 0; var responseMock = new Mock <Microsoft.AspNetCore.Http.HttpResponse>(); responseMock.Setup(s => s.StatusCode).Returns(200); responseMock.Setup(s => s.Body).Returns(body); var response = new ExtractedResponse(responseMock.Object); response.Body.Should().Be(json); response.StatusCode.Should().Be((HttpStatusCode)200); }
public static ExtractedResponse ConstructResponseMessage(HttpResponse response) { var responseMessage = new ExtractedResponse(response); return(responseMessage); }