public static void putSendResult(MutableMessage message, SendResult sendResult) { message.getHeaders().put(ROCKET_SEND_RESULT, sendResult); }
@Test public void testMessageHeaderIsSerializable() { Object payload = new Object(); UUID uuid = UUID.nameUUIDFromBytes(((System.currentTimeMillis() - System.nanoTime()) + "").getBytes()); Long timestamp = System.currentTimeMillis(); // UUID as String; timestamp as String Map<String, Object> headerMapStrings = new HashMap<>(); headerMapStrings.put(MessageHeaders.ID, uuid.toString()); headerMapStrings.put(MessageHeaders.TIMESTAMP, timestamp.toString()); MutableMessage<Object> mutableMessageStrings = new MutableMessage<>(payload, headerMapStrings); assertEquals(uuid, mutableMessageStrings.getHeaders().getId()); assertEquals(timestamp, mutableMessageStrings.getHeaders().getTimestamp()); // UUID as byte[]; timestamp as Long Map<String, Object> headerMapByte = new HashMap<>(); byte[] uuidAsBytes = ByteBuffer.allocate(16) .putLong(uuid.getMostSignificantBits()) .putLong(uuid.getLeastSignificantBits()) .array(); headerMapByte.put(MessageHeaders.ID, uuidAsBytes); headerMapByte.put(MessageHeaders.TIMESTAMP, timestamp); MutableMessage<Object> mutableMessageBytes = new MutableMessage<>(payload, headerMapByte); assertEquals(uuid, mutableMessageBytes.getHeaders().getId()); assertEquals(timestamp, mutableMessageBytes.getHeaders().getTimestamp()); }
@Test public void testMessageIdTimestampRemains() { UUID uuid = UUID.randomUUID(); long timestamp = System.currentTimeMillis(); Object payload = new Object(); Map<String, Object> headerMap = new HashMap<>(); headerMap.put(MessageHeaders.ID, uuid); headerMap.put(MessageHeaders.TIMESTAMP, timestamp); MutableMessage<Object> mutableMessage = new MutableMessage<>(payload, headerMap); MutableMessageHeaders headers = mutableMessage.getHeaders(); assertThat(headers.getRawHeaders(), hasEntry(MessageHeaders.ID, uuid)); assertThat(headers.getRawHeaders(), hasEntry(MessageHeaders.TIMESTAMP, timestamp)); }
@Test public void testMessageHeaderIsSettable() { Object payload = new Object(); Map<String, Object> headerMap = new HashMap<>(); Map<String, Object> additional = new HashMap<>(); MutableMessage<Object> mutableMessage = new MutableMessage<>(payload, headerMap); MutableMessageHeaders headers = mutableMessage.getHeaders(); // Should not throw an UnsupportedOperationException headers.put("foo", "bar"); headers.put("eep", "bar"); headers.remove("eep"); headers.putAll(additional); assertThat(headers.getRawHeaders(), hasEntry("foo", "bar")); }
public static void putSendResult(MutableMessage message, SendResult sendResult) { message.getHeaders().put(ROCKET_SEND_RESULT, sendResult); }