/** * Creates a new ExternalMessageBuilder initialized with the passed {@code headers}. * * @param headers the headers to initialize the builder with. * @return the builder. */ public static ExternalMessageBuilder newExternalMessageBuilder(final Map<String, String> headers) { return new UnmodifiableExternalMessageBuilder(headers); }
/** * Creates a new ExternalMessageBuilder based on the passed existing {@code externalMessage}. * * @param externalMessage the ExternalMessage initialize the builder with. * @return the builder. */ public static ExternalMessageBuilder newExternalMessageBuilder(final ExternalMessage externalMessage) { return new UnmodifiableExternalMessageBuilder(externalMessage); }
@Override public ExternalMessage withHeaders(final Map<String, String> additionalHeaders) { return new UnmodifiableExternalMessageBuilder(this) .withAdditionalHeaders(additionalHeaders) .build(); }
@Override public ExternalMessage withHeader(final String key, final String value) { return new UnmodifiableExternalMessageBuilder(this).withAdditionalHeaders(key, value).build(); }
private void testBuildExternalMessage(final boolean bytePayload) { final AuthorizationContext authorizationContext = Mockito.mock(AuthorizationContext.class); final TopicPath topicPath = Mockito.mock(TopicPath.class); final Map<String, String> headers = new HashMap<>(); headers.put("eclipse", "ditto"); final UnmodifiableExternalMessageBuilder messageBuilder = new UnmodifiableExternalMessageBuilder(headers); messageBuilder.withAdditionalHeaders("ditto", "eclipse"); messageBuilder.withAuthorizationContext(authorizationContext); messageBuilder.withTopicPath(topicPath); if (bytePayload) { messageBuilder.withBytes(BYTES); } else { messageBuilder.withText(PAYLOAD); } final ExternalMessage externalMessage = messageBuilder.build(); Assertions.assertThat(externalMessage.getHeaders()).containsEntry("eclipse", "ditto"); Assertions.assertThat(externalMessage.getHeaders()).containsEntry("ditto", "eclipse"); Assertions.assertThat(externalMessage.getAuthorizationContext()).contains(authorizationContext); Assertions.assertThat(externalMessage.getTopicPath()).contains(topicPath); Assertions.assertThat(externalMessage.isError()).isFalse(); Assertions.assertThat(externalMessage.isResponse()).isFalse(); if (bytePayload) { Assertions.assertThat(externalMessage.getTextPayload()).isEmpty(); Assertions.assertThat(externalMessage.getBytePayload()).contains(ByteBuffer.wrap(BYTES)); } else { Assertions.assertThat(externalMessage.getTextPayload()).contains(PAYLOAD); Assertions.assertThat(externalMessage.getBytePayload()).isEmpty(); } }