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 54771a13375a45d80b1202f8119e001cc2f070ff Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Tue Dec 3 12:41:04 2019 +0700 JAMES-3002 Demonstrate James respond 400 upon unavailable ElasticSearch --- .../org/apache/james/CassandraJmapTestRule.java | 4 +++ .../CassandraGetMessageListMethodTest.java | 34 ++++++++++++++++++++++ .../integration/GetMessageListMethodTest.java | 4 +-- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java index ac072e2..7d55af2 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java @@ -84,4 +84,8 @@ public class CassandraJmapTestRule implements TestRule { public void await() { guiceModuleTestRule.await(); } + + public DockerElasticSearchRule getDockerElasticSearchRule() { + return dockerElasticSearchRule; + } } diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java index 664c3d2..fa9b3d7 100644 --- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java +++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java @@ -19,14 +19,23 @@ package org.apache.james.jmap.cassandra; +import static io.restassured.RestAssured.given; +import static org.apache.james.jmap.TestingConstants.ALICE; + import java.io.IOException; +import java.util.Date; + +import javax.mail.Flags; import org.apache.james.CassandraJmapTestRule; import org.apache.james.DockerCassandraRule; import org.apache.james.GuiceJamesServer; import org.apache.james.jmap.draft.methods.integration.GetMessageListMethodTest; +import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.modules.TestJMAPServerModule; +import org.junit.Ignore; import org.junit.Rule; +import org.junit.Test; public class CassandraGetMessageListMethodTest extends GetMessageListMethodTest { @@ -46,4 +55,29 @@ public class CassandraGetMessageListMethodTest extends GetMessageListMethodTest protected void await() { rule.await(); } + + @Ignore("Demonstrate James respond 400 upon unavailable ElasticSearch") + @Test + public void getMessageListShouldReturn503WhenElasticSearchIsDown() throws Exception { + mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), "mailbox"); + + mailboxProbe.appendMessage(ALICE.asString(), ALICE_MAILBOX, + ClassLoader.getSystemResourceAsStream("eml/twoAttachments.eml"), new Date(), false, new Flags(Flags.Flag.FLAGGED)); + + await(); + + rule.getDockerElasticSearchRule().getDockerEs().pause(); + + try { + given() + .header("Authorization", aliceAccessToken.serialize()) + .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"AND\",\"conditions\":[{\"isFlagged\":\"true\"},{\"isUnread\":\"true\"}]}}, \"#0\"]]") + .when() + .post("/jmap") + .then() + .statusCode(503); + } finally { + rule.getDockerElasticSearchRule().getDockerEs().unpause(); + } + } } diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java index 8dce7c1..2537cc3 100644 --- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java +++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java @@ -112,10 +112,10 @@ public abstract class GetMessageListMethodTest { protected abstract void await(); - private AccessToken aliceAccessToken; + protected AccessToken aliceAccessToken; private AccessToken bobAccessToken; private GuiceJamesServer jmapServer; - private MailboxProbeImpl mailboxProbe; + protected MailboxProbeImpl mailboxProbe; private DataProbe dataProbe; @Before --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org