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/05/09 10:28:37 UTC
[james-project] 12/14: JAMES-2712 Extract vault requests to a
proper helper class
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 0eab09fdc7a4d5b425221a41a820c2748a9ba65e
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Thu May 2 11:53:13 2019 +0700
JAMES-2712 Extract vault requests to a proper helper class
---
.../james/jmap/DeletedMessagesVaultRequests.java | 83 +++++++++++++++++++++
.../integration/DeletedMessagesVaultTest.java | 85 ++++------------------
...LinshareBlobExportMechanismIntegrationTest.java | 26 ++-----
3 files changed, 104 insertions(+), 90 deletions(-)
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/DeletedMessagesVaultRequests.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/DeletedMessagesVaultRequests.java
new file mode 100644
index 0000000..21ace61
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/DeletedMessagesVaultRequests.java
@@ -0,0 +1,83 @@
+/****************************************************************
+ * 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;
+
+import static org.hamcrest.Matchers.is;
+
+import io.restassured.specification.RequestSpecification;
+
+public class DeletedMessagesVaultRequests {
+
+ public static void exportVaultContent(RequestSpecification webAdminApi, ExportRequest exportRequest) {
+ String taskId =
+ webAdminApi.with()
+ .queryParam("action", "export")
+ .queryParam("exportTo", exportRequest.getSharee())
+ .body(exportRequest.getMatchingQuery())
+ .post("/deletedMessages/users/" + exportRequest.getUserExportFrom())
+ .jsonPath()
+ .get("taskId");
+
+ webAdminApi.with()
+ .get("/tasks/" + taskId + "/await")
+ .then()
+ .body("status", is("completed"));
+ }
+
+ public static void restoreMessagesForUserWithQuery(RequestSpecification webAdminApi, String user, String criteria) {
+ String taskId = webAdminApi.with()
+ .body(criteria)
+ .post("/deletedMessages/users/" + user + "?action=restore")
+ .jsonPath()
+ .get("taskId");
+
+ webAdminApi.given()
+ .get("/tasks/" + taskId + "/await")
+ .then()
+ .body("status", is("completed"));
+ }
+
+ public static void purgeVault(RequestSpecification webAdminApi) {
+ String taskId =
+ webAdminApi.with()
+ .queryParam("scope", "expired")
+ .delete("/deletedMessages")
+ .jsonPath()
+ .get("taskId");
+
+ webAdminApi.with()
+ .get("/tasks/" + taskId + "/await")
+ .then()
+ .body("status", is("completed"));
+ }
+
+ public static void deleteFromVault(RequestSpecification webAdminApi, String user, String messageId) {
+ String taskId =
+ webAdminApi.with()
+ .delete("/deletedMessages/users/" + user + "/messages/" + messageId)
+ .jsonPath()
+ .get("taskId");
+
+ webAdminApi.with()
+ .get("/tasks/" + taskId + "/await")
+ .then()
+ .body("status", is("completed"));
+ }
+}
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java
index f8cc0f6..60faec2 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java
@@ -22,6 +22,10 @@ package org.apache.james.jmap.methods.integration;
import static io.restassured.RestAssured.given;
import static io.restassured.RestAssured.with;
import static io.restassured.config.ParamConfig.UpdateStrategy.REPLACE;
+import static org.apache.james.jmap.DeletedMessagesVaultRequests.deleteFromVault;
+import static org.apache.james.jmap.DeletedMessagesVaultRequests.exportVaultContent;
+import static org.apache.james.jmap.DeletedMessagesVaultRequests.purgeVault;
+import static org.apache.james.jmap.DeletedMessagesVaultRequests.restoreMessagesForUserWithQuery;
import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
import static org.apache.james.jmap.JmapCommonRequests.deleteMessages;
import static org.apache.james.jmap.JmapCommonRequests.getLastMessageId;
@@ -37,7 +41,6 @@ import static org.apache.james.mailbox.backup.ZipAssert.EntryChecks.hasName;
import static org.apache.james.mailbox.backup.ZipAssert.assertThatZip;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.hasItem;
-import static org.hamcrest.Matchers.is;
import java.io.FileInputStream;
import java.io.IOException;
@@ -258,7 +261,7 @@ public abstract class DeletedMessagesVaultTest {
" }" +
" ]" +
"}";
- restoreMessagesFor(HOMER, query);
+ restoreMessagesForUserWithQuery(webAdminApi, HOMER, query);
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
@@ -294,7 +297,7 @@ public abstract class DeletedMessagesVaultTest {
" }" +
" ]" +
"}";
- restoreMessagesFor(HOMER, query);
+ restoreMessagesForUserWithQuery(webAdminApi, HOMER, query);
Thread.sleep(Duration.FIVE_SECONDS.getValueInMS());
@@ -591,7 +594,7 @@ public abstract class DeletedMessagesVaultTest {
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
clock.setInstant(ONE_DAY_AFTER_ONE_YEAR_EXPIRATION);
- purgeVault();
+ purgeVault(webAdminApi);
String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
try (ZipAssert zipAssert = assertThatZip(new FileInputStream(fileLocation))) {
@@ -616,7 +619,7 @@ public abstract class DeletedMessagesVaultTest {
homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- purgeVault();
+ purgeVault(webAdminApi);
String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
try (ZipAssert zipAssert = assertThatZip(new FileInputStream(fileLocation))) {
@@ -635,7 +638,7 @@ public abstract class DeletedMessagesVaultTest {
homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- purgeVault();
+ purgeVault(webAdminApi);
String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
try (ZipAssert zipAssert = assertThatZip(new FileInputStream(fileLocation))) {
@@ -652,7 +655,7 @@ public abstract class DeletedMessagesVaultTest {
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
clock.setInstant(ONE_DAY_AFTER_ONE_YEAR_EXPIRATION);
- purgeVault();
+ purgeVault(webAdminApi);
assertThat(listMessageIdsForAccount(homerAccessToken))
.hasSize(0);
@@ -668,7 +671,7 @@ public abstract class DeletedMessagesVaultTest {
homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- deleteVault(HOMER, messageIdOfHomer);
+ deleteFromVault(webAdminApi, HOMER, messageIdOfHomer);
String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
try (ZipAssert zipAssert = assertThatZip(new FileInputStream(fileLocation))) {
@@ -683,7 +686,7 @@ public abstract class DeletedMessagesVaultTest {
String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
- deleteVault(HOMER, messageIdOfHomer);
+ deleteFromVault(webAdminApi, HOMER, messageIdOfHomer);
String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
try (ZipAssert zipAssert = assertThatZip(new FileInputStream(fileLocation))) {
@@ -702,7 +705,7 @@ public abstract class DeletedMessagesVaultTest {
homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- deleteVault(HOMER, messageIdOfBart);
+ deleteFromVault(webAdminApi, HOMER, messageIdOfBart);
String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
try (ZipAssert zipAssert = assertThatZip(new FileInputStream(fileLocation))) {
@@ -721,7 +724,7 @@ public abstract class DeletedMessagesVaultTest {
homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- deleteVault(HOMER, messageIdOfHomer);
+ deleteFromVault(webAdminApi, HOMER, messageIdOfHomer);
assertThat(listMessageIdsForAccount(homerAccessToken))
.hasSize(0);
@@ -729,7 +732,7 @@ public abstract class DeletedMessagesVaultTest {
private String exportAndGetFileLocationFromLastMail(ExportRequest exportRequest, AccessToken shareeAccessToken) {
int currentNumberOfMessages = listMessageIdsForAccount(shareeAccessToken).size();
- exportVaultContent(exportRequest);
+ exportVaultContent(webAdminApi, exportRequest);
WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(shareeAccessToken).size() == currentNumberOfMessages + 1);
String exportingMessageId = getLastMessageId(shareeAccessToken);
@@ -814,20 +817,7 @@ public abstract class DeletedMessagesVaultTest {
}
private void restoreMessagesFor(String user) {
- restoreMessagesFor(user, MATCH_ALL_QUERY);
- }
-
- private void restoreMessagesFor(String user, String criteria) {
- String taskId = webAdminApi.with()
- .body(criteria)
- .post("/deletedMessages/users/" + user + "?action=restore")
- .jsonPath()
- .get("taskId");
-
- webAdminApi.given()
- .get("/tasks/" + taskId + "/await")
- .then()
- .body("status", is("completed"));
+ restoreMessagesForUserWithQuery(webAdminApi, user, MATCH_ALL_QUERY);
}
private void homerMovesTheMailInAnotherMailbox(String messageId) {
@@ -849,47 +839,4 @@ public abstract class DeletedMessagesVaultTest {
.when()
.post("/jmap");
}
-
- private void exportVaultContent(ExportRequest exportRequest) {
- String taskId =
- webAdminApi.with()
- .queryParam("action", "export")
- .queryParam("exportTo", exportRequest.getSharee())
- .body(exportRequest.getMatchingQuery())
- .post("/deletedMessages/users/" + exportRequest.getUserExportFrom())
- .jsonPath()
- .get("taskId");
-
- webAdminApi.with()
- .get("/tasks/" + taskId + "/await")
- .then()
- .body("status", is("completed"));
- }
-
- private void purgeVault() {
- String taskId =
- webAdminApi.with()
- .queryParam("scope", "expired")
- .delete("/deletedMessages")
- .jsonPath()
- .get("taskId");
-
- webAdminApi.with()
- .get("/tasks/" + taskId + "/await")
- .then()
- .body("status", is("completed"));
- }
-
- private void deleteVault(String user, String messageId) {
- String taskId =
- webAdminApi.with()
- .delete("/deletedMessages/users/" + user + "/messages/" + messageId)
- .jsonPath()
- .get("taskId");
-
- webAdminApi.with()
- .get("/tasks/" + taskId + "/await")
- .then()
- .body("status", is("completed"));
- }
}
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/LinshareBlobExportMechanismIntegrationTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/LinshareBlobExportMechanismIntegrationTest.java
index 58be63e..8e6c704 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/LinshareBlobExportMechanismIntegrationTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/LinshareBlobExportMechanismIntegrationTest.java
@@ -21,6 +21,7 @@ package org.apache.james.jmap.methods.integration;
import static io.restassured.RestAssured.given;
import static io.restassured.RestAssured.with;
+import static org.apache.james.jmap.DeletedMessagesVaultRequests.exportVaultContent;
import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
import static org.apache.james.jmap.JmapCommonRequests.deleteMessages;
import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
@@ -36,7 +37,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.Matchers.is;
import java.util.List;
@@ -127,7 +127,7 @@ public abstract class LinshareBlobExportMechanismIntegrationTest {
homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
WAIT_TEN_SECONDS.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- exportVaultContent(EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
+ exportVaultContent(webAdminApi, EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
assertThat(user1LinshareAPI.receivedShares())
.hasSize(1)
@@ -149,7 +149,7 @@ public abstract class LinshareBlobExportMechanismIntegrationTest {
WAIT_TEN_SECONDS.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- exportVaultContent(EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
+ exportVaultContent(webAdminApi, EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
assertThat(user1LinshareAPI.receivedShares())
.hasSize(1)
@@ -166,7 +166,7 @@ public abstract class LinshareBlobExportMechanismIntegrationTest {
homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
WAIT_TEN_SECONDS.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- exportVaultContent(EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
+ exportVaultContent(webAdminApi, EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
WAIT_TEN_SECONDS.untilAsserted(
() -> fakeSmtpRequestSpecification
@@ -195,7 +195,7 @@ public abstract class LinshareBlobExportMechanismIntegrationTest {
WAIT_TEN_SECONDS.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
- exportVaultContent(EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
+ exportVaultContent(webAdminApi, EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
WAIT_TEN_SECONDS.untilAsserted(
() -> fakeSmtpRequestSpecification
@@ -244,20 +244,4 @@ public abstract class LinshareBlobExportMechanismIntegrationTest {
private void homerDeletesMessages(List<String> idsToDestroy) {
deleteMessages(homerAccessToken, idsToDestroy);
}
-
- private void exportVaultContent(ExportRequest exportRequest) {
- String taskId =
- webAdminApi.with()
- .queryParam("action", "export")
- .queryParam("exportTo", exportRequest.getSharee())
- .body(exportRequest.getMatchingQuery())
- .post("/deletedMessages/users/" + exportRequest.getUserExportFrom())
- .jsonPath()
- .get("taskId");
-
- webAdminApi.with()
- .get("/tasks/" + taskId + "/await")
- .then()
- .body("status", is("completed"));
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org