Skip to content

Commit 2a513e3

Browse files
Merge pull request #1918 from rabbitmq/mk-x-modulus-hash-exchange-type
Cover more built-in exchange types
2 parents 52fa18c + 0375b89 commit 2a513e3

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/main/java/com/rabbitmq/client/BuiltinExchangeType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
*/
66
public enum BuiltinExchangeType {
77

8-
DIRECT("direct"), FANOUT("fanout"), TOPIC("topic"), HEADERS("headers");
8+
DIRECT("direct"), FANOUT("fanout"), TOPIC("topic"), HEADERS("headers"),
9+
CONSISTENT_HASH("x-consistent-hash"), MODULUS_HASH("x-modulus-hash"),
10+
LOCAL_RANDOM("x-local-random"), RANDOM("x-random");
911

1012
private final String type;
1113

src/test/java/com/rabbitmq/client/test/functional/ExchangeDeclare.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
import static org.junit.jupiter.api.Assertions.assertEquals;
2020

2121
import java.io.IOException;
22+
import java.util.Arrays;
2223
import java.util.HashMap;
24+
import java.util.List;
2325
import java.util.Map;
2426
import java.util.concurrent.TimeoutException;
2527

@@ -101,8 +103,13 @@ public void releaseResources() throws IOException {
101103
}
102104

103105
private void doTestExchangeDeclaredWithEnumerationEquivalent(Channel channel) throws IOException, InterruptedException {
104-
assertEquals(4, BuiltinExchangeType.values().length, "There are 4 standard exchange types");
105-
for (BuiltinExchangeType exchangeType : BuiltinExchangeType.values()) {
106+
// Only test AMQP 0-9-1 standard types; plugin and newer core types
107+
// (e.g. x-modulus-hash, x-local-random) may not be available on the test broker
108+
List<BuiltinExchangeType> standardTypes = Arrays.asList(
109+
BuiltinExchangeType.DIRECT, BuiltinExchangeType.FANOUT,
110+
BuiltinExchangeType.TOPIC, BuiltinExchangeType.HEADERS
111+
);
112+
for (BuiltinExchangeType exchangeType : standardTypes) {
106113
channel.exchangeDeclare(NAME, exchangeType);
107114
verifyEquivalent(NAME, exchangeType.getType(), false, false, null);
108115
channel.exchangeDelete(NAME);

0 commit comments

Comments
 (0)