@Override public Response render(ServeEvent serveEvent) { ResponseDefinition responseDefinition = serveEvent.getResponseDefinition(); HttpUriRequest httpRequest = getHttpRequestFor(responseDefinition); addRequestHeaders(httpRequest, responseDefinition); try { addBodyIfPostPutOrPatch(httpRequest, responseDefinition); HttpResponse httpResponse = client.execute(httpRequest); return response() .status(httpResponse.getStatusLine().getStatusCode()) .headers(headersFrom(httpResponse, responseDefinition)) .body(getEntityAsByteArrayAndCloseStream(httpResponse)) .fromProxy(true) .configureDelay( globalSettingsHolder.get().getFixedDelay(), globalSettingsHolder.get().getDelayDistribution(), responseDefinition.getFixedDelayMilliseconds(), responseDefinition.getDelayDistribution() ) .chunkedDribbleDelay(responseDefinition.getChunkedDribbleDelay()) .build(); } catch (IOException e) { throw new RuntimeException(e); } }
private void addDelayIfSpecifiedGloballyOrIn(Integer fixedDelay, Integer globalFixedDelay) { Optional<Integer> optionalDelay = getDelayFromResponseOrGlobalSetting(fixedDelay, globalFixedDelay); if (optionalDelay.isPresent()) { incrementInitialDelay(optionalDelay.get()); } }
.status(responseDefinition.getStatus()) .statusMessage(responseDefinition.getStatusMessage()) .headers(headers) .fault(responseDefinition.getFault()) .configureDelay( globalSettingsHolder.get().getFixedDelay(), globalSettingsHolder.get().getDelayDistribution(), responseDefinition.getDelayDistribution() .chunkedDribbleDelay(responseDefinition.getChunkedDribbleDelay()); responseBuilder.body(bodyFile); } else if (responseDefinition.specifiesBodyContent()) { if(responseDefinition.specifiesBinaryBodyContent()) { responseBuilder.body(responseDefinition.getByteBody()); } else { responseBuilder.body(responseDefinition.getByteBody());
public static Builder response() { return new Builder(); }
public Builder configureDelay(Integer globalFixedDelay, DelayDistribution globalDelayDistribution, Integer fixedDelay, DelayDistribution delayDistribution) { addDelayIfSpecifiedGloballyOrIn(fixedDelay, globalFixedDelay); addRandomDelayIfSpecifiedGloballyOrIn(delayDistribution, globalDelayDistribution); return this; }
private Response buildResponse(ServeEvent serveEvent) { if (serveEvent.getResponseDefinition().isProxyResponse()) { return proxyResponseRenderer.render(serveEvent); } else { Response.Builder responseBuilder = renderDirectly(serveEvent); return responseBuilder.build(); } }
public static Builder like(Response response) { Builder responseBuilder = new Builder(); responseBuilder.status = response.getStatus(); responseBuilder.bodyStream = response.bodyStreamSource; responseBuilder.headers = response.getHeaders(); responseBuilder.configured = response.wasConfigured(); responseBuilder.fault = response.getFault(); responseBuilder.initialDelay = response.getInitialDelay(); responseBuilder.chunkedDribbleDelay = response.getChunkedDribbleDelay(); responseBuilder.fromProxy = response.isFromProxy(); return responseBuilder; }