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 <btell...@linagora.com> Authored: Thu Nov 16 13:09:37 2017 +0700 Committer: Antoine Duprat <adup...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org