@Test
  public void testHeaderMatchingSelectorMissingHeader() {
    Map<String, String> headerMatchers = new HashMap<String, String>();
    headerMatchers.put("operation", "foo");
    HeaderMatchingMessageSelector messageSelector =
        new HeaderMatchingMessageSelector(headerMatchers);

    Message<String> acceptMessage =
        MessageBuilder.withPayload("FooTest").setHeader("operation", "foo").build();

    Message<String> declineMessage = MessageBuilder.withPayload("FooTest").build();

    Assert.assertTrue(messageSelector.accept(acceptMessage));
    Assert.assertFalse(messageSelector.accept(declineMessage));
  }
  @Test
  public void testHeaderMatchingSelectorWithMessageObjectPayload() {
    Map<String, String> headerMatchers = new HashMap<String, String>();
    headerMatchers.put("operation", "foo");
    HeaderMatchingMessageSelector messageSelector =
        new HeaderMatchingMessageSelector(headerMatchers);

    Message<DefaultMessage> acceptMessage =
        MessageBuilder.withPayload(new DefaultMessage("FooTest").setHeader("operation", "foo"))
            .build();

    Message<DefaultMessage> declineMessage =
        MessageBuilder.withPayload(new DefaultMessage("FooTest").setHeader("operation", "foobar"))
            .build();

    Assert.assertTrue(messageSelector.accept(acceptMessage));
    Assert.assertFalse(messageSelector.accept(declineMessage));

    headerMatchers.put(MessageHeaders.ID, acceptMessage.getHeaders().getId().toString());

    Assert.assertTrue(messageSelector.accept(acceptMessage));
    Assert.assertFalse(messageSelector.accept(declineMessage));
  }