/** * Returns an {@code OperationPreprocessor} that will remove any header from the * request or response with a name that is equal to one of the given * {@code headersToRemove}. * @param headerNames the header names * @return the preprocessor * @see String#equals(Object) */ public static OperationPreprocessor removeHeaders(String... headerNames) { return new HeaderRemovingOperationPreprocessor( new ExactMatchHeaderFilter(headerNames)); }
@Override public OperationRequest preprocess(OperationRequest request) { return this.requestFactory.createFrom(request, removeHeaders(request.getHeaders())); }
@Test public void removeAllHeaders() { HeaderRemovingOperationPreprocessor processor = new HeaderRemovingOperationPreprocessor( new PatternMatchHeaderFilter(".*")); OperationResponse preprocessed = processor.preprocess(createResponse()); assertThat(preprocessed.getHeaders().size()).isEqualTo(0); }
@Test public void modifyRequestHeaders() { OperationRequest request = this.requestFactory.create( URI.create("http://localhost"), HttpMethod.GET, new byte[0], getHttpHeaders(), new Parameters(), Collections.<OperationRequestPart>emptyList()); OperationRequest preprocessed = this.preprocessor.preprocess(request); assertThat(preprocessed.getHeaders().size()).isEqualTo(2); assertThat(preprocessed.getHeaders()).containsEntry("a", Arrays.asList("alpha")); assertThat(preprocessed.getHeaders()).containsEntry("Host", Arrays.asList("localhost")); }
@Test public void modifyWithPattern() { OperationResponse response = createResponse("content-length", "1234"); HeaderRemovingOperationPreprocessor processor = new HeaderRemovingOperationPreprocessor( new PatternMatchHeaderFilter("co.*le(.)gth]")); OperationResponse preprocessed = processor.preprocess(response); assertThat(preprocessed.getHeaders().size()).isEqualTo(2); assertThat(preprocessed.getHeaders()).containsEntry("a", Arrays.asList("alpha")); assertThat(preprocessed.getHeaders()).containsEntry("b", Arrays.asList("bravo", "banana")); }
@Test public void modifyResponseHeaders() { OperationResponse response = createResponse(); OperationResponse preprocessed = this.preprocessor.preprocess(response); assertThat(preprocessed.getHeaders().size()).isEqualTo(1); assertThat(preprocessed.getHeaders()).containsEntry("a", Arrays.asList("alpha")); }
/** * Returns an {@code OperationPreprocessor} that will remove any headers from the * request or response with a name that matches one of the given * {@code headerNamePatterns} regular expressions. * @param headerNamePatterns the header name patterns * @return the preprocessor * @see java.util.regex.Matcher#matches() */ public static OperationPreprocessor removeMatchingHeaders( String... headerNamePatterns) { return new HeaderRemovingOperationPreprocessor( new PatternMatchHeaderFilter(headerNamePatterns)); }
@Override public OperationResponse preprocess(OperationResponse response) { return this.responseFactory.createFrom(response, removeHeaders(response.getHeaders())); }