@Test public void testReplyMessageCorrelator() { HttpMessageSender messageSender = new HttpMessageSender(); String requestUrl = "http://localhost:8088/test"; String responseBody = "<TestResponse><Message>Hello World!</Message></TestResponse>"; messageSender.setReplyMessageHandler(replyMessageHandler); messageSender.setRequestMethod(HttpMethod.GET); messageSender.setRequestUrl(requestUrl); ReplyMessageCorrelator correlator = EasyMock.createMock(ReplyMessageCorrelator.class); messageSender.setCorrelator(correlator); Message<?> requestMessage = MessageBuilder.withPayload("<TestRequest><Message>Hello World!</Message></TestRequest>") .build(); messageSender.setRestTemplate(restTemplate); reset(restTemplate, replyMessageHandler, correlator); restTemplate.setErrorHandler(anyObject(ResponseErrorHandler.class)); expectLastCall().once(); expect( restTemplate.exchange( eq(requestUrl), eq(HttpMethod.GET), anyObject(HttpEntity.class), eq(String.class))) .andReturn(new ResponseEntity<String>(responseBody, HttpStatus.OK)) .once(); expect(correlator.getCorrelationKey(requestMessage)).andReturn("correlationKey").once(); replyMessageHandler.onReplyMessage(anyObject(Message.class), eq("correlationKey")); expectLastCall().once(); replay(restTemplate, replyMessageHandler, correlator); messageSender.send(requestMessage); verify(restTemplate, replyMessageHandler, correlator); }