This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 47984b1e6ea6abe88e18deeeb335c575a0027350
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Wed Aug 28 10:36:24 2019 +0700

    JAMES-2565 Ability to bind MockSMTP server on a fixed port
---
 .../org/apache/james/mock/smtp/server/MockSMTPServer.java  | 14 ++++++++++++--
 .../apache/james/mock/smtp/server/MockSMTPServerTest.java  |  8 ++++----
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git 
a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPServer.java
 
b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPServer.java
index 13a7965..8233d66 100644
--- 
a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPServer.java
+++ 
b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPServer.java
@@ -23,11 +23,21 @@ import org.apache.james.util.Port;
 import org.subethamail.smtp.server.SMTPServer;
 
 class MockSMTPServer {
+    private static final int RANDOM_PORT = 0;
+
+    public static MockSMTPServer onRandomPort(SMTPBehaviorRepository 
behaviorRepository, ReceivedMailRepository mailRepository) {
+        return new MockSMTPServer(behaviorRepository, mailRepository, 
RANDOM_PORT);
+    }
+
+    public static MockSMTPServer onPort(SMTPBehaviorRepository 
behaviorRepository, ReceivedMailRepository mailRepository, Port port) {
+        return new MockSMTPServer(behaviorRepository, mailRepository, 
port.getValue());
+    }
+
     private final SMTPServer server;
 
-    MockSMTPServer(SMTPBehaviorRepository behaviorRepository, 
ReceivedMailRepository mailRepository) {
+    private MockSMTPServer(SMTPBehaviorRepository behaviorRepository, 
ReceivedMailRepository mailRepository, int port) {
         this.server = new SMTPServer(ctx -> new 
MockMessageHandler(mailRepository, behaviorRepository));
-        this.server.setPort(0);
+        this.server.setPort(port);
     }
 
     void start() {
diff --git 
a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPServerTest.java
 
b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPServerTest.java
index ee8e41f..a5ceef5 100644
--- 
a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPServerTest.java
+++ 
b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPServerTest.java
@@ -74,7 +74,7 @@ class MockSMTPServerTest {
     void setUp() throws Exception {
         behaviorRepository = new SMTPBehaviorRepository();
         mailRepository = new ReceivedMailRepository();
-        mockServer = new MockSMTPServer(behaviorRepository, mailRepository);
+        mockServer = MockSMTPServer.onRandomPort(behaviorRepository, 
mailRepository);
 
         mimeMessage1 = MimeMessageBuilder.mimeMessageBuilder()
             .setSubject("test")
@@ -423,7 +423,7 @@ class MockSMTPServerTest {
 
     @Test
     void serverStartShouldOpenASmtpPort() {
-        MockSMTPServer mockServer = new MockSMTPServer(new 
SMTPBehaviorRepository(), new ReceivedMailRepository());
+        MockSMTPServer mockServer = MockSMTPServer.onRandomPort(new 
SMTPBehaviorRepository(), new ReceivedMailRepository());
         mockServer.start();
 
         assertThatCode(() -> new SMTPMessageSender(DOMAIN)
@@ -433,7 +433,7 @@ class MockSMTPServerTest {
 
     @Test
     void serverShouldBeAbleToStop() {
-        MockSMTPServer mockServer = new MockSMTPServer(new 
SMTPBehaviorRepository(), new ReceivedMailRepository());
+        MockSMTPServer mockServer = MockSMTPServer.onRandomPort(new 
SMTPBehaviorRepository(), new ReceivedMailRepository());
         mockServer.start();
         Port port = mockServer.getPort();
 
@@ -446,7 +446,7 @@ class MockSMTPServerTest {
 
     @Test
     void serverStartShouldBeIdempotent() {
-        MockSMTPServer mockServer = new MockSMTPServer(new 
SMTPBehaviorRepository(), new ReceivedMailRepository());
+        MockSMTPServer mockServer = MockSMTPServer.onRandomPort(new 
SMTPBehaviorRepository(), new ReceivedMailRepository());
         mockServer.start();
 
         assertThatCode(mockServer::start)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to