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 ad...@apache.org on 2017/11/16 14:19:49 UTC

[02/18] james-project git commit: JAMES-2218 Extract messageId handling in cucumber tests

JAMES-2218 Extract messageId handling in cucumber tests


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e505089d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e505089d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e505089d

Branch: refs/heads/master
Commit: e505089d9aea4ce4d25d2898f9347d6939e2180d
Parents: 4ad9a0b
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 16 13:09:37 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Thu Nov 16 12:28:58 2017 +0100

----------------------------------------------------------------------
 .../cucumber/GetMessageListMethodStepdefs.java  |  8 ++--
 .../cucumber/GetMessagesMethodStepdefs.java     | 41 +++++++---------
 .../integration/cucumber/MessageIdStepdefs.java | 49 ++++++++++++++++++++
 .../cucumber/SetMessagesMethodStepdefs.java     | 24 +++++-----
 4 files changed, 81 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e505089d/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessageListMethodStepdefs.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessageListMethodStepdefs.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessageListMethodStepdefs.java
index b5cbf9b..d4de2ec 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessageListMethodStepdefs.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessageListMethodStepdefs.java
@@ -43,13 +43,13 @@ public class GetMessageListMethodStepdefs {
     private static final String ARGUMENTS = "[0][1]";
     private final MainStepdefs mainStepdefs;
     private final HttpClient httpClient;
-    private final GetMessagesMethodStepdefs messagesMethodStepdefs;
+    private final MessageIdStepdefs messageIdStepdefs;
 
     @Inject
-    private GetMessageListMethodStepdefs(MainStepdefs mainStepdefs, HttpClient httpClient, GetMessagesMethodStepdefs messagesMethodStepdefs) {
+    private GetMessageListMethodStepdefs(MainStepdefs mainStepdefs, HttpClient httpClient, MessageIdStepdefs messageIdStepdefs) {
         this.mainStepdefs = mainStepdefs;
         this.httpClient = httpClient;
-        this.messagesMethodStepdefs = messagesMethodStepdefs;
+        this.messageIdStepdefs = messageIdStepdefs;
     }
 
     @When("^\"([^\"]*)\" asks for message list in mailboxes \"([^\"]*)\" with flag \"([^\"]*)\"$")
@@ -111,7 +111,7 @@ public class GetMessageListMethodStepdefs {
 
     @Then("^the message list contains \"([^\"]*)\"")
     public void assertContains(String messsage) throws Exception {
-        MessageId messageId = messagesMethodStepdefs.getMessageId(messsage);
+        MessageId messageId = messageIdStepdefs.getMessageId(messsage);
         assertThat(httpClient.response.getStatusLine().getStatusCode()).isEqualTo(200);
         assertThat(httpClient.jsonPath.<List<String>>read(ARGUMENTS + ".messageIds")).contains(messageId.serialize());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e505089d/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
index 96df760..cf9d51a 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
@@ -24,7 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.io.ByteArrayInputStream;
 import java.time.ZonedDateTime;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -77,25 +76,17 @@ public class GetMessagesMethodStepdefs {
     private final MainStepdefs mainStepdefs;
     private final UserStepdefs userStepdefs;
     private final HttpClient httpClient;
-    private final Map<String, MessageId> messageIdsByName;
+    private final MessageIdStepdefs messageIdStepdefs;
 
     private List<MessageId> requestedMessageIds;
 
     @Inject
     private GetMessagesMethodStepdefs(MainStepdefs mainStepdefs, UserStepdefs userStepdefs,
-                                      HttpClient httpClient) {
+                                      HttpClient httpClient, MessageIdStepdefs messageIdStepdefs) {
         this.mainStepdefs = mainStepdefs;
         this.userStepdefs = userStepdefs;
         this.httpClient = httpClient;
-        this.messageIdsByName = new HashMap<>();
-    }
-
-    public MessageId getMessageId(String name) {
-        return messageIdsByName.get(name);
-    }
-
-    public MessageId addMessageId(String name, MessageId messageId) {
-        return messageIdsByName.put(name, messageId);
+        this.messageIdStepdefs = messageIdStepdefs;
     }
 
     @Given("^the user has a message \"([^\"]*)\" in \"([^\"]*)\" and \"([^\"]*)\" mailboxes with subject \"([^\"]*)\", content \"([^\"]*)\"$")
@@ -105,7 +96,7 @@ public class GetMessagesMethodStepdefs {
         MailboxId mailboxId2 = mainStepdefs.mailboxProbe.getMailbox(MailboxConstants.USER_NAMESPACE, userStepdefs.getConnectedUser(), mailbox2).getMailboxId();
 
         mainStepdefs.jmapServer.getProbe(JmapGuiceProbe.class).setInMailboxes(id, userStepdefs.getConnectedUser(), mailboxId1, mailboxId2);
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
         mainStepdefs.awaitMethod.run();
     }
 
@@ -117,7 +108,7 @@ public class GetMessagesMethodStepdefs {
     @Given("^the user has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox with subject \"([^\"]*)\", content \"([^\"]*)\"$")
     public void appendMessage(String messageName, String mailbox, String subject, String content) throws Exception {
         MessageId id = appendMessage(mailbox, ContentType.noContentType(), subject, content, NO_HEADERS);
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
     }
 
     @Given("^\"([^\"]*)\" has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox with subject \"([^\"]*)\", content \"([^\"]*)\"$")
@@ -133,7 +124,7 @@ public class GetMessagesMethodStepdefs {
     @Given("^the user has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox with content-type \"([^\"]*)\" subject \"([^\"]*)\", content \"([^\"]*)\"$")
     public void appendMessageWithContentType(String messageName, String mailbox, String contentType, String subject, String content) throws Throwable {
         MessageId id = appendMessage(mailbox, ContentType.from(contentType), subject, content, NO_HEADERS);
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
     }
 
     @Given("^\"([^\"]*)\" has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox with content-type \"([^\"]*)\" subject \"([^\"]*)\", content \"([^\"]*)\", headers$")
@@ -144,13 +135,13 @@ public class GetMessagesMethodStepdefs {
     @Given("^the user has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox with content-type \"([^\"]*)\" subject \"([^\"]*)\", content \"([^\"]*)\", headers$")
     public void appendMessage(String messageName, String mailbox, String contentType, String subject, String content, DataTable headers) throws Exception {
         MessageId id = appendMessage(mailbox, ContentType.from(contentType), subject, content, Optional.of(headers.asMap(String.class, String.class)));
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
     }
 
     @Given("^the user has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox with subject \"([^\"]*)\", content \"([^\"]*)\", headers$")
     public void appendMessageWithHeader(String messageName, String mailbox, String subject, String content, DataTable headers) throws Exception {
         MessageId id = appendMessage(mailbox, ContentType.noContentType(), subject, content, Optional.of(headers.asMap(String.class, String.class)));
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
     }
 
     @Given("^\"([^\"]*)\" has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox with subject \"([^\"]*)\", content \"([^\"]*)\", headers$")
@@ -171,7 +162,7 @@ public class GetMessagesMethodStepdefs {
             ClassLoader.getSystemResourceAsStream("eml/inlinedMultipart.eml"),
             Date.from(dateTime.toInstant()), false, new Flags())
             .getMessageId();
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
         mainStepdefs.awaitMethod.run();
     }
 
@@ -379,7 +370,7 @@ public class GetMessagesMethodStepdefs {
             new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()),
             Date.from(dateTime.toInstant()), isRecent, flags)
             .getMessageId();
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
     }
 
     private void appendMessage(String messageName, String mailbox, String emlFileName) throws Exception {
@@ -391,7 +382,7 @@ public class GetMessagesMethodStepdefs {
                 Date.from(dateTime.toInstant()), false, new Flags())
                     .getMessageId();
 
-        messageIdsByName.put(messageName, id);
+        messageIdStepdefs.addMessageId(messageName, id);
     }
 
     @When("^\"([^\"]*)\" ask for messages using its accountId$")
@@ -437,7 +428,7 @@ public class GetMessagesMethodStepdefs {
     @When("^the user ask for messages \"(.*?)\"$")
     public void postWithAListOfIds(List<String> ids) throws Exception {
         requestedMessageIds = ids.stream()
-            .map(messageIdsByName::get)
+            .map(messageIdStepdefs::getMessageId)
             .collect(Guavate.toImmutableList());
         askMessages(requestedMessageIds);
     }
@@ -478,7 +469,7 @@ public class GetMessagesMethodStepdefs {
     @When("^the user is getting messages \"(.*?)\" with properties \"(.*?)\"$")
     public void postWithParameters(List<String> ids, List<String> properties) throws Exception {
         requestedMessageIds = ids.stream()
-            .map(messageIdsByName::get)
+            .map(messageIdStepdefs::getMessageId)
             .collect(Guavate.toImmutableList());
 
         String serializedIds = requestedMessageIds.stream()
@@ -531,7 +522,7 @@ public class GetMessagesMethodStepdefs {
 
     @Then("^the notFound list should contain \"([^\"]*)\"$")
     public void assertNotFoundListContains(String id) throws Exception {
-        MessageId messageId = messageIdsByName.get(id);
+        MessageId messageId = messageIdStepdefs.getMessageId(id);
         assertThat(httpClient.jsonPath.<List<String>>read(ARGUMENTS + ".notFound")).contains(messageId.serialize());
     }
 
@@ -549,7 +540,7 @@ public class GetMessagesMethodStepdefs {
 
     @Then("^the id of the message is \"([^\"]*)\"$")
     public void assertIdOfTheFirstMessage(String messageName) throws Exception {
-        MessageId id = messageIdsByName.get(messageName);
+        MessageId id = messageIdStepdefs.getMessageId(messageName);
         assertThat(httpClient.jsonPath.<String>read(FIRST_MESSAGE + ".id")).isEqualTo(id.serialize());
     }
 
@@ -588,7 +579,7 @@ public class GetMessagesMethodStepdefs {
 
     @Then("^the threadId of the message is \"([^\"]*)\"$")
     public void assertThreadIdOfTheFirstMessage(String threadId) throws Exception {
-        MessageId id = messageIdsByName.get(threadId);
+        MessageId id = messageIdStepdefs.getMessageId(threadId);
         assertThat(httpClient.jsonPath.<String>read(FIRST_MESSAGE + ".threadId")).isEqualTo(id.serialize());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/e505089d/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/MessageIdStepdefs.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/MessageIdStepdefs.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/MessageIdStepdefs.java
new file mode 100644
index 0000000..ae971f9
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/MessageIdStepdefs.java
@@ -0,0 +1,49 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.jmap.methods.integration.cucumber;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.apache.james.mailbox.model.MessageId;
+
+import cucumber.runtime.java.guice.ScenarioScoped;
+
+@ScenarioScoped
+public class MessageIdStepdefs {
+
+    private final Map<String, MessageId> messageIdsByName;
+
+    @Inject
+    private MessageIdStepdefs() {
+        this.messageIdsByName = new HashMap<>();
+    }
+
+    public MessageId getMessageId(String name) {
+        return messageIdsByName.get(name);
+    }
+
+    public MessageId addMessageId(String name, MessageId messageId) {
+        return messageIdsByName.put(name, messageId);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/e505089d/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/SetMessagesMethodStepdefs.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/SetMessagesMethodStepdefs.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/SetMessagesMethodStepdefs.java
index 3522d3c..ff30634 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/SetMessagesMethodStepdefs.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/SetMessagesMethodStepdefs.java
@@ -49,14 +49,14 @@ public class SetMessagesMethodStepdefs {
     private final MainStepdefs mainStepdefs;
     private final UserStepdefs userStepdefs;
     private final HttpClient httpClient;
-    private final GetMessagesMethodStepdefs getMessagesMethodStepdefs;
+    private final MessageIdStepdefs messageIdStepdefs;
 
     @Inject
-    private SetMessagesMethodStepdefs(MainStepdefs mainStepdefs, UserStepdefs userStepdefs, HttpClient httpClient, GetMessagesMethodStepdefs getMessagesMethodStepdefs) {
+    private SetMessagesMethodStepdefs(MainStepdefs mainStepdefs, UserStepdefs userStepdefs, HttpClient httpClient, MessageIdStepdefs messageIdStepdefs) {
         this.mainStepdefs = mainStepdefs;
         this.userStepdefs = userStepdefs;
         this.httpClient = httpClient;
-        this.getMessagesMethodStepdefs = getMessagesMethodStepdefs;
+        this.messageIdStepdefs = messageIdStepdefs;
     }
 
     @When("^\"([^\"]*)\" moves \"([^\"]*)\" to user mailbox \"([^\"]*)\"")
@@ -66,7 +66,7 @@ public class SetMessagesMethodStepdefs {
 
     @When("^the user moves \"([^\"]*)\" to user mailbox \"([^\"]*)\"")
     public void moveMessageToMailbox(String message, String mailbox) throws Throwable {
-        MessageId messageId = getMessagesMethodStepdefs.getMessageId(message);
+        MessageId messageId = messageIdStepdefs.getMessageId(message);
         MailboxId mailboxId = mainStepdefs.jmapServer
             .getProbe(MailboxProbeImpl.class)
             .getMailbox(MailboxConstants.USER_NAMESPACE, userStepdefs.getConnectedUser(), mailbox)
@@ -93,7 +93,7 @@ public class SetMessagesMethodStepdefs {
 
     @When("^the user copies \"([^\"]*)\" from mailbox \"([^\"]*)\" to mailbox \"([^\"]*)\"")
     public void copyMessageToMailbox(String message, String sourceMailbox, String destinationMailbox) throws Throwable {
-        MessageId messageId = getMessagesMethodStepdefs.getMessageId(message);
+        MessageId messageId = messageIdStepdefs.getMessageId(message);
         MailboxId sourceMailboxId = mainStepdefs.jmapServer
             .getProbe(MailboxProbeImpl.class)
             .getMailbox(MailboxConstants.USER_NAMESPACE, userStepdefs.getConnectedUser(), sourceMailbox)
@@ -123,7 +123,7 @@ public class SetMessagesMethodStepdefs {
     }
 
     private void copyMessageToMailbox(String message, String sourceMailbox, String sourceUser, String destinationMailbox, String destinationUser) throws Throwable {
-        MessageId messageId = getMessagesMethodStepdefs.getMessageId(message);
+        MessageId messageId = messageIdStepdefs.getMessageId(message);
         MailboxId sourceMailboxId = mainStepdefs.jmapServer
             .getProbe(MailboxProbeImpl.class)
             .getMailbox(MailboxConstants.USER_NAMESPACE, sourceUser, sourceMailbox)
@@ -153,7 +153,7 @@ public class SetMessagesMethodStepdefs {
     }
 
     private void moveMessageToMailbox(String message, String destinationMailbox, String destinationUser) throws Throwable {
-        MessageId messageId = getMessagesMethodStepdefs.getMessageId(message);
+        MessageId messageId = messageIdStepdefs.getMessageId(message);
         MailboxId destinationMailboxId = mainStepdefs.jmapServer
             .getProbe(MailboxProbeImpl.class)
             .getMailbox(MailboxConstants.USER_NAMESPACE, destinationUser, destinationMailbox)
@@ -180,7 +180,7 @@ public class SetMessagesMethodStepdefs {
 
     @When("^\"([^\"]*)\" destroys message \"([^\"]*)\"")
     public void destroyMessage(String username, String message) throws Throwable {
-        MessageId messageId = getMessagesMethodStepdefs.getMessageId(message);
+        MessageId messageId = messageIdStepdefs.getMessageId(message);
         userStepdefs.execWithUser(username, () -> {
             httpClient.post("[" +
                 "  [" +
@@ -218,13 +218,13 @@ public class SetMessagesMethodStepdefs {
             Optional.ofNullable(
                 httpClient.jsonPath.<String>read("[0][1].created." + message + ".id"))
                 .map(mainStepdefs.messageIdFactory::fromString)
-                .ifPresent(id -> getMessagesMethodStepdefs.addMessageId(message, id));
+                .ifPresent(id -> messageIdStepdefs.addMessageId(message, id));
         });
     }
 
     @When("^the user sets flags \"([^\"]*)\" on message \"([^\"]*)\"")
     public void setFlags(List<String> keywords, String message) throws Throwable {
-        MessageId messageId = getMessagesMethodStepdefs.getMessageId(message);
+        MessageId messageId = messageIdStepdefs.getMessageId(message);
         String keywordString = keywords
             .stream()
             .map(value -> "\"" + value + "\" : true")
@@ -248,7 +248,7 @@ public class SetMessagesMethodStepdefs {
     public void setMessageFlagsInSpecifiedMailbox(String message, List<String> flags, String mailbox, String mailboxOwner) throws Exception {
         Flags newFlags = Keywords.factory().fromList(flags).asFlags();
         String username = userStepdefs.getConnectedUser();
-        MessageId messageId = getMessagesMethodStepdefs.getMessageId(message);
+        MessageId messageId = messageIdStepdefs.getMessageId(message);
         MailboxId mailboxId = mainStepdefs.jmapServer
             .getProbe(MailboxProbeImpl.class)
             .getMailbox(MailboxConstants.USER_NAMESPACE, mailboxOwner, mailbox)
@@ -260,7 +260,7 @@ public class SetMessagesMethodStepdefs {
 
     @Then("^message \"([^\"]*)\" is not updated$")
     public void assertIdOfTheFirstMessage(String messageName) throws Exception {
-        MessageId id = getMessagesMethodStepdefs.getMessageId(messageName);
+        MessageId id = messageIdStepdefs.getMessageId(messageName);
         assertThat(httpClient.jsonPath.<Map<String, String>>read("[0][1].notUpdated"))
             .containsOnlyKeys(id.serialize());
     }


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