@Test public void serializeMutableHeaders() throws Exception { Map<String, Object> headers = new HashMap<>(); headers.put("foo", "bar"); Message<String> message = new GenericMessage<>("test", headers); MessageHeaderAccessor mutableAccessor = MessageHeaderAccessor.getMutableAccessor(message); mutableAccessor.setContentType(MimeTypeUtils.TEXT_PLAIN); message = new GenericMessage<>(message.getPayload(), mutableAccessor.getMessageHeaders()); Message<?> output = (Message<?>) SerializationTestUtils.serializeAndDeserialize(message); assertEquals("test", output.getPayload()); assertEquals("bar", output.getHeaders().get("foo")); assertNotNull(output.getHeaders().get(MessageHeaders.CONTENT_TYPE)); }
@Test public void getShortLogMessagePayload() { MessageHeaderAccessor accessor = new MessageHeaderAccessor(); accessor.setContentType(MimeTypeUtils.TEXT_PLAIN); String expected = "headers={contentType=text/plain} payload=p"; assertEquals(expected, accessor.getShortLogMessage("p")); assertEquals(expected, accessor.getShortLogMessage("p".getBytes(StandardCharsets.UTF_8))); assertEquals(expected, accessor.getShortLogMessage(new Object() { @Override public String toString() { return "p"; } })); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 80; i++) { sb.append("a"); } final String payload = sb.toString() + " > 80"; String actual = accessor.getShortLogMessage(payload); assertEquals("headers={contentType=text/plain} payload=" + sb + "...(truncated)", actual); actual = accessor.getShortLogMessage(payload.getBytes(StandardCharsets.UTF_8)); assertEquals("headers={contentType=text/plain} payload=" + sb + "...(truncated)", actual); actual = accessor.getShortLogMessage(new Object() { @Override public String toString() { return payload; } }); assertThat(actual, startsWith("headers={contentType=text/plain} payload=" + getClass().getName() + "$")); }
@Test public void getDetailedLogMessagePayload() { MessageHeaderAccessor accessor = new MessageHeaderAccessor(); accessor.setContentType(MimeTypeUtils.TEXT_PLAIN); String expected = "headers={contentType=text/plain} payload=p"; assertEquals(expected, accessor.getDetailedLogMessage("p")); assertEquals(expected, accessor.getDetailedLogMessage("p".getBytes(StandardCharsets.UTF_8))); assertEquals(expected, accessor.getDetailedLogMessage(new Object() { @Override public String toString() { return "p"; } })); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 80; i++) { sb.append("a"); } final String payload = sb.toString() + " > 80"; String actual = accessor.getDetailedLogMessage(payload); assertEquals("headers={contentType=text/plain} payload=" + sb + " > 80", actual); actual = accessor.getDetailedLogMessage(payload.getBytes(StandardCharsets.UTF_8)); assertEquals("headers={contentType=text/plain} payload=" + sb + " > 80", actual); actual = accessor.getDetailedLogMessage(new Object() { @Override public String toString() { return payload; } }); assertEquals("headers={contentType=text/plain} payload=" + sb + " > 80", actual); }