Add MessageHeaderAccessor to be created with existing headers

This commit mirrors toMap/toMessageHeaders with from factory methods
that allow to create an instance without having to create an
intermediate message if all they have is the headers.

Closes gh-33153
This commit is contained in:
Stéphane Nicoll
2024-07-08 13:40:38 +02:00
parent d89cb34c29
commit 078dfd47dc
2 changed files with 75 additions and 2 deletions

View File

@@ -47,6 +47,30 @@ class MessageHeaderAccessorTests {
assertThat(accessor.toMap()).isEmpty();
}
@Test
void fromEmptyMap() {
MessageHeaderAccessor accessor = MessageHeaderAccessor.fromMap(Collections.emptyMap());
assertThat(accessor.toMap()).isEmpty();
}
@Test
void fromNullMap() {
MessageHeaderAccessor accessor = MessageHeaderAccessor.fromMap(null);
assertThat(accessor.toMap()).isEmpty();
}
@Test
void fromEmptyMessageHeaders() {
MessageHeaderAccessor accessor = MessageHeaderAccessor.fromMessageHeaders(new MessageHeaders(Collections.emptyMap()));
assertThat(accessor.toMap()).isEmpty();
}
@Test
void fromNullMessageHeaders() {
MessageHeaderAccessor accessor = MessageHeaderAccessor.fromMessageHeaders(null);
assertThat(accessor.toMap()).isEmpty();
}
@Test
void existingHeaders() {
Map<String, Object> map = new HashMap<>();
@@ -62,6 +86,32 @@ class MessageHeaderAccessorTests {
assertThat(actual.get("bar")).isEqualTo("baz");
}
@Test
void fromMapWithExistingHeaders() {
Map<String, Object> map = new HashMap<>();
map.put("foo", "bar");
map.put("bar", "baz");
MessageHeaderAccessor accessor = MessageHeaderAccessor.fromMap(map);
MessageHeaders actual = accessor.getMessageHeaders();
assertThat(actual).hasSize(3);
assertThat(actual.get("foo")).isEqualTo("bar");
assertThat(actual.get("bar")).isEqualTo("baz");
}
@Test
void fromMessageHeaderWithExistingHeaders() {
Map<String, Object> map = new HashMap<>();
map.put("foo", "bar");
map.put("bar", "baz");
MessageHeaderAccessor accessor = MessageHeaderAccessor.fromMessageHeaders(new MessageHeaders(map));
MessageHeaders actual = accessor.getMessageHeaders();
assertThat(actual).hasSize(3);
assertThat(actual.get("foo")).isEqualTo("bar");
assertThat(actual.get("bar")).isEqualTo("baz");
}
@Test
void existingHeadersModification() throws InterruptedException {
Map<String, Object> map = new HashMap<>();