示例#1
0
  @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);
  }