Skip to content

Commit 3d2acf4

Browse files
committed
Add interoperability test with empty body
References rabbitmq/rabbitmq-server#6835
1 parent f78ac08 commit 3d2acf4

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

src/test/java/com/rabbitmq/stream/impl/AmqpInteroperabilityTest.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@
1313
1414
package com.rabbitmq.stream.impl;
1515

16+
import static com.rabbitmq.stream.impl.TestUtils.ResponseConditions.ok;
1617
import static com.rabbitmq.stream.impl.TestUtils.b;
18+
import static com.rabbitmq.stream.impl.TestUtils.latchAssert;
1719
import static com.rabbitmq.stream.impl.TestUtils.streamName;
20+
import static java.util.Collections.singletonList;
1821
import static java.util.concurrent.TimeUnit.SECONDS;
1922
import static org.assertj.core.api.Assertions.assertThat;
2023

@@ -27,11 +30,16 @@
2730
import com.rabbitmq.stream.amqp.UnsignedByte;
2831
import com.rabbitmq.stream.codec.QpidProtonCodec;
2932
import com.rabbitmq.stream.codec.SwiftMqCodec;
33+
import com.rabbitmq.stream.impl.Client.ClientParameters;
34+
import com.rabbitmq.stream.impl.Client.Response;
35+
import com.rabbitmq.stream.impl.TestUtils.BrokerVersion;
36+
import com.rabbitmq.stream.impl.TestUtils.BrokerVersionAtLeast;
3037
import java.nio.charset.Charset;
3138
import java.nio.charset.StandardCharsets;
3239
import java.util.*;
3340
import java.util.concurrent.ConcurrentHashMap;
3441
import java.util.concurrent.CountDownLatch;
42+
import java.util.concurrent.atomic.AtomicReference;
3543
import java.util.function.Consumer;
3644
import java.util.function.Supplier;
3745
import java.util.stream.IntStream;
@@ -469,7 +477,7 @@ void publishToStreamConsumeFromStreamQueue(Codec codec, TestInfo info) {
469477
messageOperation ->
470478
messageOperation.messageBuilderConsumer.accept(messageBuilder));
471479

472-
client.publish(b(1), Collections.singletonList(messageBuilder.build()));
480+
client.publish(b(1), singletonList(messageBuilder.build()));
473481
});
474482

475483
try (Connection c = connectionFactory.newConnection()) {
@@ -517,6 +525,37 @@ void publishToStreamConsumeFromStreamQueue(Codec codec, TestInfo info) {
517525
});
518526
}
519527

528+
@ParameterizedTest
529+
@MethodSource("codecs")
530+
@BrokerVersionAtLeast(BrokerVersion.RABBITMQ_3_11_7)
531+
void messageWithEmptyBodyAndPropertiesShouldBeConvertedInAmqp(Codec codec) throws Exception {
532+
Client client = cf.get(new ClientParameters().codec(codec));
533+
Response response = client.declarePublisher(b(1), null, stream);
534+
assertThat(response).is(ok());
535+
Message message = codec.messageBuilder().properties().messageId(1L).messageBuilder().build();
536+
client.publish(b(1), singletonList(message));
537+
538+
CountDownLatch consumeLatch = new CountDownLatch(1);
539+
AtomicReference<Delivery> delivery = new AtomicReference<>();
540+
ConnectionFactory cf = new ConnectionFactory();
541+
try (Connection c = cf.newConnection()) {
542+
Channel ch = c.createChannel();
543+
ch.basicQos(10);
544+
ch.basicConsume(
545+
stream,
546+
false,
547+
Collections.singletonMap("x-stream-offset", "first"),
548+
(consumerTag, message1) -> {
549+
ch.basicAck(message1.getEnvelope().getDeliveryTag(), false);
550+
delivery.set(message1);
551+
consumeLatch.countDown();
552+
},
553+
consumerTag -> {});
554+
555+
assertThat(latchAssert(consumeLatch)).completes();
556+
}
557+
}
558+
520559
private static class PropertiesTestConfiguration {
521560
final Consumer<AMQP.BasicProperties.Builder> builder;
522561
final Consumer<Message> assertion;

src/test/java/com/rabbitmq/stream/impl/TestUtils.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,8 @@ static void waitMs(long waitTime) {
906906
public @interface SingleActiveConsumer {}
907907

908908
public enum BrokerVersion {
909-
RABBITMQ_3_11("3.11.0");
909+
RABBITMQ_3_11("3.11.0"),
910+
RABBITMQ_3_11_7("3.11.7");
910911

911912
final String value;
912913

0 commit comments

Comments
 (0)