Skip to content

Commit 5021b7c

Browse files
authored
bugfix: Message is not comparable (ClassCastException) (#137)
1 parent 55ab8d2 commit 5021b7c

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

springwolf-core/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/ChannelMerger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,6 @@ private static Set<Message> getMessages(Operation operation) {
5858
.ofNullable(operation)
5959
.map(Operation::getMessage)
6060
.map(MessageHelper::messageObjectToSet)
61-
.orElseGet(TreeSet::new);
61+
.orElseGet(HashSet::new);
6262
}
6363
}

springwolf-core/src/test/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/ChannelMergerTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,28 @@ public void shouldMergeDifferentMessageForSameOperation() {
117117
assertThat(it.getSubscribe()).isNull();
118118
});
119119
}
120+
121+
@Test
122+
public void shouldUseOtherMessageIfFirstMessageIsMissing() {
123+
// given
124+
String channelName = "channel";
125+
Message message2 = Message.builder().name(String.class.getCanonicalName()).description("This is a string").build();
126+
Operation publishOperation1 = Operation.builder().operationId("publisher1").build();
127+
Operation publishOperation2 = Operation.builder().operationId("publisher2").message(message2).build();
128+
ChannelItem publisherChannel1 = ChannelItem.builder().publish(publishOperation1).build();
129+
ChannelItem publisherChannel2 = ChannelItem.builder().publish(publishOperation2).build();
130+
131+
// when
132+
Map<String, ChannelItem> mergedChannels = ChannelMerger.merge(Arrays.asList(
133+
Maps.immutableEntry(channelName, publisherChannel1),
134+
Maps.immutableEntry(channelName, publisherChannel2)));
135+
136+
// then expectedMessage message2
137+
Object expectedMessages = MessageHelper.toMessageObjectOrComposition(Sets.newHashSet(message2));
138+
assertThat(mergedChannels).hasSize(1)
139+
.hasEntrySatisfying(channelName, it -> {
140+
assertThat(it.getPublish()).isEqualTo(Operation.builder().operationId("publisher1").message(expectedMessages).build());
141+
assertThat(it.getSubscribe()).isNull();
142+
});
143+
}
120144
}

0 commit comments

Comments
 (0)