### Question:
DefaultCorrelationDataPostProcessor implements CorrelationDataPostProcessor { @Override public CorrelationData postProcess(final Message message, CorrelationData correlationData) { CorrelationData resultCorrelationData = correlationData == null ? new CorrelationData() : correlationData; MessageProperties messageProperties = message.getMessageProperties(); if (correlationData != null && correlationData.getId() != null) { messageProperties.setCorrelationId(correlationData.getId()); } correlationPostProcessor.postProcessMessage(message); resultCorrelationData.setId(messageProperties.getCorrelationId()); return resultCorrelationData; } DefaultCorrelationDataPostProcessor(CorrelationPostProcessor correlationPostProcessor); @Override CorrelationData postProcess(final Message message, CorrelationData correlationData);  }### Answer:
@Test public void postProcessWithCorrelationDataTest() { CorrelationData inputCorrelationData = new CorrelationData("my-correlation-id"); CorrelationData correlationData = defaultCorrelationDataPostProcessor.postProcess(message, inputCorrelationData); assertNotNull(message.getMessageProperties().getHeaders().get("correlation-id")); assertNotNull(correlationData); assertNotNull(correlationData.getId()); assertThat(message.getMessageProperties().getHeaders().get("correlation-id"), is(inputCorrelationData.getId())); assertThat(correlationData.getId(), is(inputCorrelationData.getId())); }