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/12/10 02:30:19 UTC
[james-project] 16/27: JAMES-3002 Demonstrate James respond 400
upon unavailable ElasticSearch
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 <bt...@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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org