|
27 | 27 | import com.rabbitmq.client.amqp.Management;
|
28 | 28 | import com.rabbitmq.client.amqp.Message;
|
29 | 29 | import com.rabbitmq.client.amqp.Publisher;
|
| 30 | +import java.util.List; |
30 | 31 | import java.util.Map;
|
31 | 32 | import java.util.Queue;
|
32 | 33 | import java.util.UUID;
|
|
41 | 42 | @AmqpTestInfrastructure
|
42 | 43 | public class ConsumerOutcomeTest {
|
43 | 44 |
|
44 |
| - private static final String ANNOTATION_KEY = "x-opt-foo"; |
| 45 | + private static final String ANNOTATION_KEY = "x-opt-string"; |
45 | 46 | private static final String ANNOTATION_VALUE = "bar";
|
46 |
| - private static final Map<String, Object> ANNOTATIONS = Map.of(ANNOTATION_KEY, ANNOTATION_VALUE); |
| 47 | + private static final String ANNOTATION_KEY_ARRAY = "x-opt-array"; |
| 48 | + private static final String[] ANNOTATION_VALUE_ARRAY = new String[] {"foo", "bar", "baz"}; |
| 49 | + private static final String ANNOTATION_KEY_LIST = "x-opt-list"; |
| 50 | + private static final List<String> ANNOTATION_VALUE_LIST = List.of("one", "two", "three"); |
| 51 | + private static final String ANNOTATION_KEY_MAP = "x-opt-map"; |
| 52 | + private static final Map<String, String> ANNOTATION_VALUE_MAP = |
| 53 | + Map.of("k1", "v1", "k2", "v2", "k3", "v3"); |
| 54 | + private static final Map<String, Object> ANNOTATIONS = |
| 55 | + Map.of( |
| 56 | + ANNOTATION_KEY, |
| 57 | + ANNOTATION_VALUE, |
| 58 | + ANNOTATION_KEY_ARRAY, |
| 59 | + ANNOTATION_VALUE_ARRAY, |
| 60 | + ANNOTATION_KEY_LIST, |
| 61 | + ANNOTATION_VALUE_LIST, |
| 62 | + ANNOTATION_KEY_MAP, |
| 63 | + ANNOTATION_VALUE_MAP); |
47 | 64 |
|
48 | 65 | Connection connection;
|
49 | 66 | Management management;
|
@@ -126,7 +143,10 @@ void requeuedMessageWithAnnotationShouldContainAnnotationsOnRedelivery() {
|
126 | 143 | message = messages.poll();
|
127 | 144 | assertThat(message)
|
128 | 145 | .hasAnnotation("x-delivery-count", 1L)
|
129 |
| - .hasAnnotation(ANNOTATION_KEY, ANNOTATION_VALUE); |
| 146 | + .hasAnnotation(ANNOTATION_KEY, ANNOTATION_VALUE) |
| 147 | + .hasAnnotation(ANNOTATION_KEY_ARRAY, ANNOTATION_VALUE_ARRAY) |
| 148 | + .hasAnnotation(ANNOTATION_KEY_LIST, ANNOTATION_VALUE_LIST) |
| 149 | + .hasAnnotation(ANNOTATION_KEY_MAP, ANNOTATION_VALUE_MAP); |
130 | 150 | waitAtMost(() -> management.queueInfo(q).messageCount() == 0);
|
131 | 151 | }
|
132 | 152 |
|
@@ -187,7 +207,12 @@ void discardedMessageShouldBeDeadLeadLetteredWhenConfigured() {
|
187 | 207 | publisher.publish(publisher.message().messageId(messageID), ctx -> {});
|
188 | 208 | assertThat(deadLetteredSync).completes();
|
189 | 209 | Message message = deadLetteredMessage.get();
|
190 |
| - assertThat(message).hasId(messageID).hasAnnotation(ANNOTATION_KEY, ANNOTATION_VALUE); |
| 210 | + assertThat(message) |
| 211 | + .hasId(messageID) |
| 212 | + .hasAnnotation(ANNOTATION_KEY, ANNOTATION_VALUE) |
| 213 | + .hasAnnotation(ANNOTATION_KEY_ARRAY, ANNOTATION_VALUE_ARRAY) |
| 214 | + .hasAnnotation(ANNOTATION_KEY_LIST, ANNOTATION_VALUE_LIST) |
| 215 | + .hasAnnotation(ANNOTATION_KEY_MAP, ANNOTATION_VALUE_MAP); |
191 | 216 | waitAtMost(() -> management.queueInfo(q).messageCount() == 0);
|
192 | 217 | waitAtMost(() -> management.queueInfo(dlq).messageCount() == 0);
|
193 | 218 | }
|
|
0 commit comments