You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/11/15 02:41:12 UTC

[james-project] 03/30: JAMES-2704 RandomStoringTest should have a per method lifecycle

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 21fd5931dcfac92d5ca50335189fc7caeb9c75e8
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 6 16:38:16 2019 +0700

    JAMES-2704 RandomStoringTest should have a per method lifecycle
    
    Also IMAP connections were not closed upon failure
---
 .../apache/james/smtp/SmtpRandomStoringTest.java   | 42 ++++++++++------------
 1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpRandomStoringTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpRandomStoringTest.java
index 4faf1e8..28287c4 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpRandomStoringTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpRandomStoringTest.java
@@ -54,9 +54,8 @@ import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.Mail;
 import org.awaitility.Duration;
 import org.awaitility.core.ConditionFactory;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -85,25 +84,25 @@ public class SmtpRandomStoringTest {
             .build();
 
     @Rule
-    public IMAPMessageReader imapMessageReader = new IMAPMessageReader();
-    @ClassRule
-    public static SMTPMessageSender messageSender = new SMTPMessageSender(DEFAULT_DOMAIN);
-    @ClassRule
-    public static TemporaryFolder temporaryFolder = new TemporaryFolder();
+    public SMTPMessageSender messageSender = new SMTPMessageSender(DEFAULT_DOMAIN);
+    @Rule
+    public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private static TemporaryJamesServer jamesServer;
-    private static ImapGuiceProbe imapProbe;
+    private TemporaryJamesServer jamesServer;
+    private ImapGuiceProbe imapProbe;
+    private Collection<IMAPMessageReader> connections;
 
-    @BeforeClass
-    public static void setUp() throws Exception {
+    @Before
+    public void setUp() throws Exception {
         createJamesServer();
 
         createUsersAndMailboxes();
 
         imapProbe = jamesServer.getProbe(ImapGuiceProbe.class);
+        connections = ImmutableList.of();
     }
 
-    private static void createUsersAndMailboxes() throws Exception {
+    private void createUsersAndMailboxes() throws Exception {
         MailboxProbeImpl mailboxes = jamesServer.getProbe(MailboxProbeImpl.class);
         DataProbe dataProbe = jamesServer.getProbe(DataProbeImpl.class);
         dataProbe.addDomain(DEFAULT_DOMAIN);
@@ -130,7 +129,7 @@ public class SmtpRandomStoringTest {
         }
     }
 
-    private static void createJamesServer() throws Exception {
+    private void createJamesServer() throws Exception {
         MailetContainer.Builder mailetContainer = TemporaryJamesServer.SIMPLE_MAILET_CONTAINER_CONFIGURATION
             .putProcessor(ProcessorConfiguration.transport()
                 .addMailet(RANDOM_STORING)
@@ -142,7 +141,7 @@ public class SmtpRandomStoringTest {
             .build(temporaryFolder.newFolder());
     }
 
-    private static void sendMails() throws Exception {
+    private void sendMails() throws Exception {
         SMTPMessageSender authenticatedSmtpConnection = messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
             .authenticate(FROM, PASSWORD);
 
@@ -152,35 +151,32 @@ public class SmtpRandomStoringTest {
                     .sendMessage(buildMail("Message " + index))).sneakyThrow());
     }
 
-    @AfterClass
-    public static void tearDown() {
+    @After
+    public void tearDown() {
+        connections.forEach(Throwing.consumer(IMAPMessageReader::close).sneakyThrow());
         jamesServer.shutdown();
     }
 
     @Test
     public void oneHundredMailsShouldHaveBeenStoredBetweenFourAndEightTimes() {
-        Collection<IMAPMessageReader> connections = USERS
+        connections = USERS
             .stream()
             .map(this::createIMAPConnection)
             .collect(Guavate.toImmutableList());
 
         awaitAtMostTenSeconds
             .untilAsserted(() -> checkNumberOfMessages(connections));
-
-        connections.forEach(Throwing.consumer(IMAPMessageReader::close).sneakyThrow());
     }
 
     @Test
     public void messagesShouldBeRandomlyAssignedToEveryMailboxesOfEveryUsers() {
-        Collection<IMAPMessageReader> connections = USERS
+        connections = USERS
             .stream()
             .map(this::createIMAPConnection)
             .collect(Guavate.toImmutableList());
 
         awaitAtMostTenSeconds
             .untilAsserted(() -> checkMailboxesHaveBeenFilled(connections));
-
-        connections.forEach(Throwing.consumer(IMAPMessageReader::close).sneakyThrow());
     }
 
     private IMAPMessageReader createIMAPConnection(String username) {


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