package org.mapfish.print.processor.http; import org.springframework.http.HttpMethod; import org.springframework.http.client.ClientHttpRequest; import org.springframework.test.context.ContextConfiguration; import java.net.URI; import javax.annotation.Nullable; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @ContextConfiguration(locations = { "classpath:org/mapfish/print/processor/http/add-headers/add-custom-processor-application-context.xml" }) public class AddHeadersProcessorTest extends AbstractHttpProcessorTest { @Override protected String baseDir() { return "add-headers"; } @Override protected Class<TestProcessor> testProcessorClass() { return TestProcessor.class; } @Override protected Class<? extends AbstractClientHttpRequestFactoryProcessor> classUnderTest() { return AddHeadersProcessor.class; } public static class TestProcessor extends AbstractTestProcessor { @Nullable @Override public Void execute(TestParam values, ExecutionContext context) throws Exception { matching(values); notMatching(values); return null; } private void matching(TestParam values) throws Exception { final URI uri = new URI("http://localhost:8080/path?query#fragment"); final ClientHttpRequest request = values.clientHttpRequestFactoryProvider.get().createRequest(uri, HttpMethod.GET); final URI finalUri = request.getURI(); assertEquals(uri, finalUri); assertEquals(2, request.getHeaders().size()); assertArrayEquals(new Object[]{"cookie-value", "cookie-value2"}, request.getHeaders().get("Cookie").toArray()); assertArrayEquals(new Object[]{"header2-value"}, request.getHeaders().get("Header2").toArray()); } private void notMatching(TestParam values) throws Exception { final URI uri = new URI("http://195.176.255.226:8080/path?query#fragment"); final ClientHttpRequest request = values.clientHttpRequestFactoryProvider.get().createRequest(uri, HttpMethod.GET); final URI finalUri = request.getURI(); assertEquals(uri, finalUri); assertEquals(0, request.getHeaders().size()); } } }