@Test public void subclassWithCustomIdAndNoTimestamp() { final AtomicLong id = new AtomicLong(); @SuppressWarnings("serial") class MyMH extends MessageHeaders { public MyMH() { super(null, new UUID(0, id.incrementAndGet()), -1L); } } MessageHeaders headers = new MyMH(); assertEquals("00000000-0000-0000-0000-000000000001", headers.getId().toString()); assertEquals(1, headers.size()); }
@Test public void convertAndSendPayloadToDestination() { this.template.convertAndSend("somewhere", "payload"); assertEquals("somewhere", this.template.destination); assertNotNull(this.template.message); assertEquals("expected 'id' and 'timestamp' headers only", 2, this.template.message.getHeaders().size()); assertEquals("payload", this.template.message.getPayload()); }
@Test public void existingHeaders() throws InterruptedException { Map<String, Object> map = new HashMap<>(); map.put("foo", "bar"); map.put("bar", "baz"); GenericMessage<String> message = new GenericMessage<>("payload", map); MessageHeaderAccessor accessor = new MessageHeaderAccessor(message); MessageHeaders actual = accessor.getMessageHeaders(); assertEquals(3, actual.size()); assertEquals("bar", actual.get("foo")); assertEquals("baz", actual.get("bar")); }
@Test public void convertAndSendPayload() { this.template.setDefaultDestination("home"); this.template.convertAndSend("payload"); assertEquals("home", this.template.destination); assertNotNull(this.template.message); assertEquals("expected 'id' and 'timestamp' headers only", 2, this.template.message.getHeaders().size()); assertEquals("payload", this.template.message.getPayload()); }
@Test public void copyHeaders() { Map<String, Object> map1 = new HashMap<>(); map1.put("foo", "bar"); GenericMessage<String> message = new GenericMessage<>("payload", map1); MessageHeaderAccessor accessor = new MessageHeaderAccessor(message); Map<String, Object> map2 = new HashMap<>(); map2.put("foo", "BAR"); map2.put("bar", "baz"); accessor.copyHeaders(map2); MessageHeaders actual = accessor.getMessageHeaders(); assertEquals(3, actual.size()); assertEquals("BAR", actual.get("foo")); assertEquals("baz", actual.get("bar")); }
@Test public void copyHeadersIfAbsent() { Map<String, Object> map1 = new HashMap<>(); map1.put("foo", "bar"); GenericMessage<String> message = new GenericMessage<>("payload", map1); MessageHeaderAccessor accessor = new MessageHeaderAccessor(message); Map<String, Object> map2 = new HashMap<>(); map2.put("foo", "BAR"); map2.put("bar", "baz"); accessor.copyHeadersIfAbsent(map2); MessageHeaders actual = accessor.getMessageHeaders(); assertEquals(3, actual.size()); assertEquals("bar", actual.get("foo")); assertEquals("baz", actual.get("bar")); }
@Test public void removeHeaders() { Map<String, Object> map = new HashMap<>(); map.put("foo", "bar"); map.put("bar", "baz"); GenericMessage<String> message = new GenericMessage<>("payload", map); MessageHeaderAccessor accessor = new MessageHeaderAccessor(message); accessor.removeHeaders("fo*"); MessageHeaders actual = accessor.getMessageHeaders(); assertEquals(2, actual.size()); assertNull(actual.get("foo")); assertEquals("baz", actual.get("bar")); }
@Test public void convertAndSendPayloadWithPostProcessorToDestination() { this.template.convertAndSend("somewhere", "payload", this.postProcessor); assertEquals("somewhere", this.template.destination); assertNotNull(this.template.message); assertEquals("expected 'id' and 'timestamp' headers only", 2, this.template.message.getHeaders().size()); assertEquals("payload", this.template.message.getPayload()); assertNotNull(this.postProcessor.getMessage()); assertSame(this.template.message, this.postProcessor.getMessage()); }
@Test public void copyHeadersFromNullMap() { MessageHeaderAccessor headers = new MessageHeaderAccessor(); headers.copyHeaders(null); headers.copyHeadersIfAbsent(null); assertEquals(1, headers.getMessageHeaders().size()); assertEquals(Collections.singleton("id"), headers.getMessageHeaders().keySet()); }
@Test public void convertAndSendPayloadWithPostProcessor() { this.template.setDefaultDestination("home"); this.template.convertAndSend((Object) "payload", this.postProcessor); assertEquals("home", this.template.destination); assertNotNull(this.template.message); assertEquals("expected 'id' and 'timestamp' headers only", 2, this.template.message.getHeaders().size()); assertEquals("payload", this.template.message.getPayload()); assertNotNull(this.postProcessor.getMessage()); assertSame(this.template.message, this.postProcessor.getMessage()); }
@Test public void existingHeadersModification() throws InterruptedException { Map<String, Object> map = new HashMap<>(); map.put("foo", "bar"); map.put("bar", "baz"); GenericMessage<String> message = new GenericMessage<>("payload", map); Thread.sleep(50); MessageHeaderAccessor accessor = new MessageHeaderAccessor(message); accessor.setHeader("foo", "BAR"); MessageHeaders actual = accessor.getMessageHeaders(); assertEquals(3, actual.size()); assertNotEquals(message.getHeaders().getId(), actual.getId()); assertEquals("BAR", actual.get("foo")); assertEquals("baz", actual.get("bar")); }
private void verifyMapForMessage( final Map<Integer, Message<HazelcastIntegrationTestUser>> map) { int index = 1; assertNotNull(map); assertEquals(true, map.size() == HazelcastOutboundChannelAdapterTestUtils.DATA_COUNT); for (Entry<Integer, Message<HazelcastIntegrationTestUser>> entry : map.entrySet()) { assertNotNull(entry); assertEquals(index, entry.getKey().intValue()); assertTrue(entry.getValue().getHeaders().size() > 0); HazelcastOutboundChannelAdapterTestUtils .verifyHazelcastIntegrationTestUser(entry.getValue().getPayload(), index); index++; } }