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