@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); } }
public static ResponseDefinitionBuilder like(ResponseDefinition responseDefinition) { ResponseDefinitionBuilder builder = new ResponseDefinitionBuilder(); builder.status = responseDefinition.getStatus(); builder.statusMessage = responseDefinition.getStatusMessage(); builder.headers = responseDefinition.getHeaders() != null ? newArrayList(responseDefinition.getHeaders().all()) : Lists.<HttpHeader>newArrayList(); builder.binaryBody = responseDefinition.getByteBodyIfBinary(); builder.stringBody = responseDefinition.getBody(); builder.base64Body = responseDefinition.getBase64Body(); builder.bodyFileName = responseDefinition.getBodyFileName(); builder.fixedDelayMilliseconds = responseDefinition.getFixedDelayMilliseconds(); builder.delayDistribution = responseDefinition.getDelayDistribution(); builder.chunkedDribbleDelay = responseDefinition.getChunkedDribbleDelay(); builder.proxyBaseUrl = responseDefinition.getProxyBaseUrl(); builder.fault = responseDefinition.getFault(); builder.responseTransformerNames = responseDefinition.getTransformers(); builder.transformerParameters = responseDefinition.getTransformerParameters() != null ? Parameters.from(responseDefinition.getTransformerParameters()) : Parameters.empty(); builder.wasConfigured = responseDefinition.isFromConfiguredStub(); return builder; }
responseDefinition.getDelayDistribution() .chunkedDribbleDelay(responseDefinition.getChunkedDribbleDelay());