JAMES-4031 Add configuration tests for RabbitMQ cluster usage
diff --git a/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQConfigurationTest.java b/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQConfigurationTest.java
index 4a2d673..fc12752 100644
--- a/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQConfigurationTest.java
+++ b/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQConfigurationTest.java
@@ -33,6 +33,7 @@
import java.util.Optional;
import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
import org.apache.commons.configuration2.ex.ConversionException;
import org.apache.james.util.Host;
import org.junit.jupiter.api.Nested;
@@ -624,6 +625,36 @@
}
}
+ @Test
+ void hostsShouldDefaultToAmqpUriIfNotSpecified() {
+ PropertiesConfiguration configuration = new PropertiesConfiguration();
+ configuration.setListDelimiterHandler(new DefaultListDelimiterHandler(','));
+ String amqpUri = "amqp://james:james@rabbitmqhost1:5672";
+ configuration.addProperty("uri", amqpUri);
+ configuration.addProperty("management.uri", "http://james:james@rabbitmqhost:15672/api/");
+ configuration.addProperty("management.user", DEFAULT_USER);
+ configuration.addProperty("management.password", DEFAULT_PASSWORD_STRING);
+
+ assertThat(RabbitMQConfiguration.from(configuration).rabbitMQHosts())
+ .containsOnly(Host.from("rabbitmqhost1", 5672));
+ }
+
+ @Test
+ void hostsShouldParseIfSpecified() {
+ PropertiesConfiguration configuration = new PropertiesConfiguration();
+ configuration.setListDelimiterHandler(new DefaultListDelimiterHandler(','));
+ String amqpUri = "amqp://james:james@rabbitmqhost1:5672";
+ configuration.addProperty("uri", amqpUri);
+ configuration.addProperty("management.uri", "http://james:james@rabbitmqhost:15672/api/");
+ configuration.addProperty("management.user", DEFAULT_USER);
+ configuration.addProperty("management.password", DEFAULT_PASSWORD_STRING);
+ configuration.addProperty("hosts", "rabbitmqhost1:5672,rabbitmqhost2:5672");
+
+ assertThat(RabbitMQConfiguration.from(configuration).rabbitMQHosts())
+ .containsExactlyInAnyOrder(Host.from("rabbitmqhost1", 5672),
+ Host.from("rabbitmqhost2", 5672));
+ }
+
@Nested
class SSLConfigurationTest {