@SuppressWarnings("unchecked")
    @Test
    @Configuration(classpathConfigFile = "basic-config.json")
    @BackEndApi(EchoBackEndApi.class)
    public void testUniqueValueSet() throws Throwable {
        final String correlationId = UUID.randomUUID().toString();
        final PolicyTestRequest request = PolicyTestRequest.build(PolicyTestRequestType.GET, "/example")
                                                            .header(HEADER_NAME, correlationId);
        final PolicyTestResponse response = send(request);

        assertEquals(HttpURLConnection.HTTP_OK, response.code());
        assertNotNull(response.body());

        // the headers are mirrored back by the EchoBackEndApi in its response body
        final Map<String, Object> responseAsMap = jsonMapper.readValue(response.body(), HashMap.class);
        final Map<String, Object> headers = (Map<String, Object>) responseAsMap.get("headers");
        assertNotNull(headers);
        assertEquals(1, headers.size());
        assertNotNull(headers.get(HEADER_NAME));
        assertEquals(correlationId, headers.get(HEADER_NAME));
    }
Expects that a unique value is set with the HTTP Header name 'X-CorrelationID'.
Missing overwriteHeaderValue property should keep the provided header value
plugins/unique-header-policy/src/test/java/io/apiman/plugins/uniqueheader/UniqueHeaderPolicyTest.java