public HttpHeaders(HttpHeaders headers) { this(headers.all()); }
public ResponseDefinitionBuilder withHeaders(HttpHeaders headers) { this.headers = ImmutableList.copyOf(headers.all()); return this; }
public HttpHeaders plus(HttpHeader... additionalHeaders) { return new HttpHeaders(ImmutableList.<HttpHeader>builder() .addAll(all()) .addAll(asList(additionalHeaders)) .build()); }
private HttpHeaders withoutContentEncodingAndContentLength(HttpHeaders httpHeaders) { return new HttpHeaders(filter(httpHeaders.all(), new Predicate<HttpHeader>() { public boolean apply(HttpHeader header) { return !header.keyEquals("Content-Encoding") && !header.keyEquals("Content-Length"); } })); }
private HttpHeaders withoutContentEncodingAndContentLength(LoggedResponse response) { return new HttpHeaders(filter(response.getHeaders().all(), new Predicate<HttpHeader>() { public boolean apply(HttpHeader header) { return !EXCLUDED_HEADERS.contains(header.caseInsensitiveKey()); } })); } }
private HttpHeaders headersFrom(HttpResponse httpResponse, ResponseDefinition responseDefinition) { List<HttpHeader> httpHeaders = new LinkedList<HttpHeader>(); for (Header header : httpResponse.getAllHeaders()) { httpHeaders.add(new HttpHeader(header.getName(), header.getValue())); } if (responseDefinition.getHeaders() != null) { httpHeaders.addAll(responseDefinition.getHeaders().all()); } return new HttpHeaders(httpHeaders); }
@Override public void serialize(HttpHeaders headers, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeStartObject(); for (HttpHeader header: headers.all()) { if (header.isSingleValued()) { jgen.writeStringField(header.key(), header.firstValue()); } else { jgen.writeArrayFieldStart(header.key()); for (String value: header.values()) { jgen.writeString(value); } jgen.writeEndArray(); } } jgen.writeEndObject(); } }
private static HttpHeaders toStyxHeaders(com.github.tomakehurst.wiremock.http.HttpHeaders headers) { HttpHeaders.Builder builder = new HttpHeaders.Builder(); if (headers != null) { headers.all().forEach(header -> builder.add(header.key(), header.values())); } return builder.build(); }
/** * Builds a {@link Response} for the OpenAPI validator out of the * original {@link com.github.tomakehurst.wiremock.http.Response}. * * @param originalResponse the original {@link com.github.tomakehurst.wiremock.http.Response} */ @Nonnull public static Response of(@Nonnull final com.github.tomakehurst.wiremock.http.Response originalResponse) { requireNonNull(originalResponse, "An original response is required"); final SimpleResponse.Builder builder = new SimpleResponse.Builder(originalResponse.getStatus()) .withBody(originalResponse.getBodyAsString()); originalResponse.getHeaders().all().forEach(header -> builder.withHeader(header.key(), header.values())); return builder.build(); } }
public static LoggedResponse from(Response response) { return new LoggedResponse( response.getStatus(), response.getHeaders() == null || response.getHeaders().all().isEmpty() ? null : response.getHeaders(), response.getBody(), response.getFault() ); }
/** * Builds a {@link Request} for the OpenAPI validator out of the * original {@link com.github.tomakehurst.wiremock.http.Request}. * * @param originalRequest the original {@link com.github.tomakehurst.wiremock.http.Request} */ @Nonnull public static Request of(@Nonnull final com.github.tomakehurst.wiremock.http.Request originalRequest) { requireNonNull(originalRequest, "An original request is required"); final URI uri = URI.create(originalRequest.getUrl()); final Map<String, QueryParameter> queryParameterMap = Urls.splitQuery(uri); final SimpleRequest.Builder builder = new SimpleRequest.Builder(originalRequest.getMethod().getName(), uri.getPath()) .withBody(originalRequest.getBodyAsString()); originalRequest.getHeaders().all().forEach(header -> builder.withHeader(header.key(), header.values())); queryParameterMap.forEach((key, value) -> builder.withQueryParam(key, value.values())); return builder.build(); } }
public void applyResponse(Response response, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { Fault fault = response.getFault(); if (fault != null) { FaultInjector faultInjector = buildFaultInjector(httpServletRequest, httpServletResponse); fault.apply(faultInjector); httpServletResponse.addHeader(Fault.class.getName(), fault.name()); return; } if (response.getStatusMessage() == null) { httpServletResponse.setStatus(response.getStatus()); } else { httpServletResponse.setStatus(response.getStatus(), response.getStatusMessage()); } for (HttpHeader header: response.getHeaders().all()) { for (String value: header.values()) { httpServletResponse.addHeader(header.key(), value); } } if (response.shouldAddChunkedDribbleDelay()) { writeAndTranslateExceptionsWithChunkedDribbleDelay(httpServletResponse, response.getBodyStream(), response.getChunkedDribbleDelay()); } else { writeAndTranslateExceptions(httpServletResponse, response.getBodyStream()); } }
private RequestPattern buildRequestPatternFrom(Request request) { RequestPatternBuilder builder = newRequestPattern(request.getMethod(), urlEqualTo(request.getUrl())); if (!headersToMatch.isEmpty()) { for (HttpHeader header: request.getHeaders().all()) { if (headersToMatch.contains(header.caseInsensitiveKey())) { builder.withHeader(header.key(), equalTo(header.firstValue())); } } } if (request.isMultipart()) { for (Request.Part part : request.getParts()) { builder.withRequestBodyPart(valuePatternForPart(part)); } } else { String body = request.getBodyAsString(); if (!body.isEmpty()) { builder.withRequestBody(valuePatternForContentType(request)); } } return builder.build(); }
Iterable<HttpHeader> newResponseHeaders = Iterables.transform(responseDefinition.getHeaders().all(), new Function<HttpHeader, HttpHeader>() { @Override public HttpHeader apply(HttpHeader input) {
private MultipartValuePattern valuePatternForPart(Request.Part part) { MultipartValuePatternBuilder builder = new MultipartValuePatternBuilder().withName(part.getName()).matchingType(MultipartValuePattern.MatchingType.ALL); if (!headersToMatch.isEmpty()) { Collection<HttpHeader> all = part.getHeaders().all(); for (HttpHeader httpHeader : all) { if (headersToMatch.contains(httpHeader.caseInsensitiveKey())) { builder.withHeader(httpHeader.key(), equalTo(httpHeader.firstValue())); } } } HttpHeader contentType = part.getHeader("Content-Type"); if (!contentType.isPresent() || contentType.firstValue().contains("text")) { builder.withBody(equalTo(part.getBody().asString())); } else if (contentType.firstValue().contains("json")) { builder.withBody(equalToJson(part.getBody().asString(), true, true)); } else if (contentType.firstValue().contains("xml")) { builder.withBody(equalToXml(part.getBody().asString())); } else { builder.withBody(binaryEqualTo(part.getBody().asBytes())); } return builder.build(); }
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; }