You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2020/12/30 03:35:14 UTC
[james-project] 02/29: JAMES-3431 Mock SMTP server: Add a
convenience version endpoint
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 6011e4b27d1a1049983b34fcd2ecfd309a82fc99
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Dec 23 12:05:09 2020 +0700
JAMES-3431 Mock SMTP server: Add a convenience version endpoint
This enables tests to ensure they are running against the right API version
---
.../org/apache/james/mailets/RemoteDeliveryErrorTest.java | 3 +++
.../apache/james/mock/smtp/server/ConfigurationClient.java | 3 +++
.../james/mock/smtp/server/HTTPConfigurationServer.java | 7 +++++++
.../james/mock/smtp/server/ConfigurationClientTest.java | 9 +++++++++
.../mock/smtp/server/HTTPConfigurationServerTest.java | 14 ++++++++++++--
5 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java
index a729062..2923665 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java
@@ -153,6 +153,9 @@ public class RemoteDeliveryErrorTest {
mockSMTP1Configuration = configurationClient(mockSmtp);
mockSMTP2Configuration = configurationClient(mockSmtp2);
+
+ assertThat(mockSMTP1Configuration.version()).isEqualTo("0.2");
+ assertThat(mockSMTP2Configuration.version()).isEqualTo("0.2");
}
@After
diff --git a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ConfigurationClient.java b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ConfigurationClient.java
index a93c369..e823cee 100644
--- a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ConfigurationClient.java
+++ b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ConfigurationClient.java
@@ -187,6 +187,9 @@ public interface ConfigurationClient {
@RequestLine("GET " + HTTPConfigurationServer.SMTP_MAILS)
List<Mail> listMails();
+ @RequestLine("GET " + HTTPConfigurationServer.VERSION)
+ String version();
+
@RequestLine("DELETE " + HTTPConfigurationServer.SMTP_MAILS)
void clearMails();
diff --git a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/HTTPConfigurationServer.java b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/HTTPConfigurationServer.java
index 32f7746..5a0784b 100644
--- a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/HTTPConfigurationServer.java
+++ b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/HTTPConfigurationServer.java
@@ -92,6 +92,7 @@ public class HTTPConfigurationServer {
private static final Logger LOGGER = LoggerFactory.getLogger(HTTPConfigurationServer.class);
private static final int RANDOM_PORT = 0;
static final String SMTP_BEHAVIORS = "/smtpBehaviors";
+ static final String VERSION = "/version";
static final String SMTP_MAILS = "/smtpMails";
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
@@ -128,6 +129,7 @@ public class HTTPConfigurationServer {
.orElse(RANDOM_PORT))
.route(routes -> routes
.get(SMTP_BEHAVIORS, this::getBehaviors)
+ .get(VERSION, this::getVersion)
.put(SMTP_BEHAVIORS, this::putBehaviors)
.delete(SMTP_BEHAVIORS, this::deleteBehaviors)
.get(SMTP_MAILS, this::getMails)
@@ -150,6 +152,11 @@ public class HTTPConfigurationServer {
}
}
+ private Publisher<Void> getVersion(HttpServerRequest req, HttpServerResponse res) {
+ return res.status(OK)
+ .sendString(Mono.just("0.2"));
+ }
+
private Publisher<Void> putBehaviors(HttpServerRequest req, HttpServerResponse res) {
return req.receive().aggregate().asInputStream()
.flatMap(inputStream -> {
diff --git a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
index ae1bdc3..33e3c38 100644
--- a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
+++ b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
@@ -96,6 +96,15 @@ class ConfigurationClientTest {
}
@Test
+ void shouldReturnVersion() {
+ mailRepository.store(MailsFixutre.MAIL_1);
+ mailRepository.store(MailsFixutre.MAIL_2);
+
+ assertThat(testee.version())
+ .isEqualTo("0.2");
+ }
+
+ @Test
void clearMailsRemoveAllStoredMails() {
mailRepository.store(MailsFixutre.MAIL_1);
mailRepository.store(MailsFixutre.MAIL_2);
diff --git a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/HTTPConfigurationServerTest.java b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/HTTPConfigurationServerTest.java
index b94a27f..29b99bc 100644
--- a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/HTTPConfigurationServerTest.java
+++ b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/HTTPConfigurationServerTest.java
@@ -29,6 +29,7 @@ import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
import static org.apache.james.mock.smtp.server.Fixture.JSON_BEHAVIORS;
import static org.apache.james.mock.smtp.server.Fixture.JSON_MAIL;
import static org.apache.james.mock.smtp.server.Fixture.JSON_MAILS_LIST;
+import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import java.nio.charset.StandardCharsets;
@@ -79,6 +80,15 @@ class HTTPConfigurationServerTest {
}
@Test
+ void shouldExposeVersion() {
+ given()
+ .basePath("/version")
+ .get()
+ .then()
+ .body(equalTo("0.2"));
+ }
+
+ @Test
void getShouldReturnPreviouslyStoredData() {
with().body(JSON_BEHAVIORS).put();
@@ -177,7 +187,7 @@ class HTTPConfigurationServerTest {
mailRepository.store(MailsFixutre.MAIL_1);
String response = when()
- .get().prettyPeek()
+ .get()
.then()
.contentType(ContentType.JSON)
.extract()
@@ -194,7 +204,7 @@ class HTTPConfigurationServerTest {
mailRepository.store(MailsFixutre.MAIL_2);
String response = when()
- .get().prettyPeek()
+ .get()
.then()
.contentType(ContentType.JSON)
.extract()
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org