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 6551174ca2b1a4ee2f598d86f9ea14fc3a763d70
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Fri Dec 13 11:13:00 2019 +0700

    JAMES-3012 Move linshare integration tests to webadmin-integration-tests
---
 .../james/modules/LinshareGuiceExtension.java      |  4 ++
 .../pom.xml                                        |  6 --
 ...LinshareBlobExportMechanismIntegrationTest.java | 54 --------------
 .../jmap-draft-integration-testing-common/pom.xml  | 10 ---
 .../james/jmap/DeletedMessagesVaultRequests.java   | 83 ----------------------
 .../java/org/apache/james/jmap/ExportRequest.java  | 62 ----------------
 .../memory-jmap-draft-integration-testing/pom.xml  |  6 --
 ...LinshareBlobExportMechanismIntegrationTest.java | 51 -------------
 server/protocols/webadmin-integration-test/pom.xml | 17 +++++
 .../vault/DeletedMessageVaultIntegrationTest.java  |  5 +-
 ...LinshareBlobExportMechanismIntegrationTest.java | 83 ++++++++++++++++------
 11 files changed, 84 insertions(+), 297 deletions(-)

diff --git 
a/server/container/guice/blob-export-guice/src/test/java/org/apache/james/modules/LinshareGuiceExtension.java
 
b/server/container/guice/blob-export-guice/src/test/java/org/apache/james/modules/LinshareGuiceExtension.java
index 9ed556c..856e0fb 100644
--- 
a/server/container/guice/blob-export-guice/src/test/java/org/apache/james/modules/LinshareGuiceExtension.java
+++ 
b/server/container/guice/blob-export-guice/src/test/java/org/apache/james/modules/LinshareGuiceExtension.java
@@ -61,4 +61,8 @@ public class LinshareGuiceExtension implements 
GuiceModuleTestExtension {
             }
         );
     }
+
+    public LinshareExtension getLinshareJunitExtension() {
+        return linshareExtension;
+    }
 }
diff --git 
a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
 
b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
index be5be85..9330511 100644
--- 
a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
+++ 
b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
@@ -35,12 +35,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-linshare</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-backends-es</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
diff --git 
a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraLinshareBlobExportMechanismIntegrationTest.java
 
b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraLinshareBlobExportMechanismIntegrationTest.java
deleted file mode 100644
index 3d83160..0000000
--- 
a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraLinshareBlobExportMechanismIntegrationTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************
- * 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.cassandra;
-
-import static 
org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MODULE;
-
-import org.apache.james.CassandraExtension;
-import org.apache.james.DockerElasticSearchExtension;
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.JamesServerBuilder;
-import org.apache.james.JamesServerExtension;
-import 
org.apache.james.jmap.draft.methods.integration.LinshareBlobExportMechanismIntegrationTest;
-import org.apache.james.modules.LinshareGuiceExtension;
-import org.apache.james.modules.TestJMAPServerModule;
-import 
org.apache.james.modules.vault.TestDeleteMessageVaultPreDeletionHookModule;
-import org.apache.james.webadmin.WebAdminConfiguration;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-class CassandraLinshareBlobExportMechanismIntegrationTest extends 
LinshareBlobExportMechanismIntegrationTest {
-
-    private static final long LIMIT_TO_10_MESSAGES = 10;
-
-    private static final LinshareGuiceExtension linshareGuiceExtension = new 
LinshareGuiceExtension();
-
-    @RegisterExtension
-    JamesServerExtension testExtension = new JamesServerBuilder()
-        .extension(linshareGuiceExtension)
-        .extension(new DockerElasticSearchExtension())
-        .extension(new CassandraExtension())
-        .server(configuration -> 
GuiceJamesServer.forConfiguration(configuration)
-            .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE)
-            .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES))
-            .overrideWith(new TestDeleteMessageVaultPreDeletionHookModule())
-            .overrideWith(binder -> binder.bind(WebAdminConfiguration.class)
-                .toInstance(WebAdminConfiguration.TEST_CONFIGURATION)))
-        .build();
-}
diff --git 
a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
 
b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
index e96d995..9b4d141 100644
--- 
a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
+++ 
b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
@@ -35,16 +35,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-linshare</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-linshare</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
diff --git 
a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/DeletedMessagesVaultRequests.java
 
b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/DeletedMessagesVaultRequests.java
deleted file mode 100644
index 21ace61..0000000
--- 
a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/DeletedMessagesVaultRequests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************
- * 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-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ExportRequest.java
 
b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ExportRequest.java
deleted file mode 100644
index 328701e..0000000
--- 
a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ExportRequest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************
- * 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;
-
-public class ExportRequest {
-
-    public static class Builder {
-
-        @FunctionalInterface
-        public interface RequireSharee {
-            RequireMatchingQuery exportTo(String sharee);
-        }
-
-        @FunctionalInterface
-        public interface RequireMatchingQuery {
-            ExportRequest query(String query);
-        }
-    }
-
-    public static Builder.RequireSharee userExportFrom(String userExportFrom) {
-        return sharee -> query -> new ExportRequest(userExportFrom, sharee, 
query);
-    }
-
-    private final String userExportFrom;
-    private final String sharee;
-    private final String matchingQuery;
-
-    private ExportRequest(String userExportFrom, String sharee, String 
matchingQuery) {
-        this.userExportFrom = userExportFrom;
-        this.sharee = sharee;
-        this.matchingQuery = matchingQuery;
-    }
-
-    public String getUserExportFrom() {
-        return userExportFrom;
-    }
-
-    public String getSharee() {
-        return sharee;
-    }
-
-    public String getMatchingQuery() {
-        return matchingQuery;
-    }
-}
diff --git 
a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
 
b/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
index 67e79f1..37fe1f4 100644
--- 
a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
+++ 
b/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
@@ -35,12 +35,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-linshare</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
diff --git 
a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryLinshareBlobExportMechanismIntegrationTest.java
 
b/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryLinshareBlobExportMechanismIntegrationTest.java
deleted file mode 100644
index 20172e2..0000000
--- 
a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryLinshareBlobExportMechanismIntegrationTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************
- * 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.memory;
-
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.JamesServerBuilder;
-import org.apache.james.JamesServerExtension;
-import org.apache.james.MemoryJamesServerMain;
-import 
org.apache.james.jmap.draft.methods.integration.LinshareBlobExportMechanismIntegrationTest;
-import org.apache.james.modules.LinshareGuiceExtension;
-import org.apache.james.modules.TestJMAPServerModule;
-import 
org.apache.james.modules.vault.TestDeleteMessageVaultPreDeletionHookModule;
-import org.apache.james.webadmin.WebAdminConfiguration;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-class MemoryLinshareBlobExportMechanismIntegrationTest extends 
LinshareBlobExportMechanismIntegrationTest {
-
-    private static final int LIMIT_TO_10_MESSAGES = 10;
-
-    private static final LinshareGuiceExtension linshareGuiceExtension = new 
LinshareGuiceExtension();
-
-    @RegisterExtension
-    JamesServerExtension jamesServerExtension = new JamesServerBuilder()
-        .extension(linshareGuiceExtension)
-        .server(configuration -> 
GuiceJamesServer.forConfiguration(configuration)
-            
.combineWith(MemoryJamesServerMain.IN_MEMORY_SERVER_AGGREGATE_MODULE)
-            .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES))
-            .overrideWith(new TestDeleteMessageVaultPreDeletionHookModule())
-            .overrideWith(binder -> {
-                binder.bind(WebAdminConfiguration.class)
-                    .toInstance(WebAdminConfiguration.TEST_CONFIGURATION);
-            }))
-        .build();
-}
diff --git a/server/protocols/webadmin-integration-test/pom.xml 
b/server/protocols/webadmin-integration-test/pom.xml
index 9ef15ce..87fd9e0 100644
--- a/server/protocols/webadmin-integration-test/pom.xml
+++ b/server/protocols/webadmin-integration-test/pom.xml
@@ -70,12 +70,24 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-linshare</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>backup</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>blob-export-guice</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>blob-objectstorage</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
@@ -172,5 +184,10 @@
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            
<artifactId>james-server-jmap-draft-integration-testing</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
 
b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
index 07755af..1cfb5e2 100644
--- 
a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
+++ 
b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
@@ -67,6 +67,7 @@ import 
org.apache.james.modules.vault.TestDeleteMessageVaultPreDeletionHookModul
 import org.apache.james.probe.DataProbe;
 import org.apache.james.server.core.JamesServerResourceLoader;
 import org.apache.james.server.core.filesystem.FileSystemImpl;
+import org.apache.james.util.Port;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.UpdatableTickingClock;
@@ -154,8 +155,8 @@ public class DeletedMessageVaultIntegrationTest {
         dataProbe.addUser(JACK, PASSWORD);
         mailboxProbe.createMailbox("#private", HOMER, DefaultMailboxes.INBOX);
         otherMailboxId = mailboxProbe.createMailbox("#private", HOMER, 
MAILBOX_NAME);
-        int jmapPort = jmapServer.getProbe(JmapGuiceProbe.class)
-            .getJmapPort();
+        Port jmapPort = Port.of(jmapServer.getProbe(JmapGuiceProbe.class)
+            .getJmapPort());
         homerAccessToken = authenticateJamesUser(baseUri(jmapPort), 
Username.of(HOMER), PASSWORD);
         bartAccessToken = authenticateJamesUser(baseUri(jmapPort), 
Username.of(BART), BOB_PASSWORD);
         jackAccessToken = authenticateJamesUser(baseUri(jmapPort), 
Username.of(JACK), PASSWORD);
diff --git 
a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/LinshareBlobExportMechanismIntegrationTest.java
 
b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java
similarity index 76%
rename from 
server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/LinshareBlobExportMechanismIntegrationTest.java
rename to 
server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java
index 2eec969..cd38122 100644
--- 
a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/LinshareBlobExportMechanismIntegrationTest.java
+++ 
b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java
@@ -17,24 +17,24 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.jmap.draft.methods.integration;
+package org.apache.james.webadmin.integration.vault;
 
 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.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.LOCALHOST_IP;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
+import static 
org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapCommonRequests.deleteMessages;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static 
org.apache.james.jmap.JmapCommonRequests.listMessageIdsForAccount;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.LOCALHOST_IP;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.linshare.LinshareFixture.MATCH_ALL_QUERY;
 import static org.apache.james.linshare.LinshareFixture.USER_1;
 import static org.apache.james.mailbox.backup.ZipAssert.assertThatZip;
+import static 
org.apache.james.webadmin.integration.vault.DeletedMessagesVaultRequests.exportVaultContent;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.hasItem;
@@ -43,23 +43,37 @@ import static org.hamcrest.Matchers.hasSize;
 import java.io.ByteArrayInputStream;
 import java.util.List;
 
+import org.apache.james.CassandraExtension;
+import org.apache.james.CassandraRabbitMQJamesServerMain;
+import org.apache.james.DockerElasticSearchExtension;
 import org.apache.james.GuiceJamesServer;
+import org.apache.james.JamesServerBuilder;
+import org.apache.james.JamesServerExtension;
+import org.apache.james.backends.rabbitmq.DockerRabbitMQSingleton;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.ExportRequest;
-import org.apache.james.jmap.api.access.AccessToken;
-import org.apache.james.linshare.LinshareExtension;
+import org.apache.james.jmap.AccessToken;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.linshare.client.Document;
 import org.apache.james.linshare.client.LinshareAPI;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.backup.ZipAssert;
+import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.probe.MailboxProbe;
+import org.apache.james.mailbox.store.search.PDFTextExtractor;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
+import org.apache.james.modules.LinshareGuiceExtension;
 import org.apache.james.modules.MailboxProbeImpl;
+import org.apache.james.modules.RabbitMQExtension;
+import org.apache.james.modules.TestJMAPServerModule;
+import org.apache.james.modules.TestRabbitMQModule;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
+import 
org.apache.james.modules.vault.TestDeleteMessageVaultPreDeletionHookModule;
+import org.apache.james.util.Port;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.utils.WebAdminGuiceProbe;
+import org.apache.james.webadmin.WebAdminConfiguration;
 import org.apache.james.webadmin.WebAdminUtils;
 import org.awaitility.Duration;
 import org.awaitility.core.ConditionFactory;
@@ -71,7 +85,8 @@ import io.restassured.RestAssured;
 import io.restassured.parsing.Parser;
 import io.restassured.specification.RequestSpecification;
 
-public abstract class LinshareBlobExportMechanismIntegrationTest {
+class LinshareBlobExportMechanismIntegrationTest {
+
     private static final String HOMER = "homer@" + DOMAIN;
     private static final String BART = "bart@" + DOMAIN;
     private static final String HOMER_PASSWORD = "homerPassword";
@@ -83,7 +98,27 @@ public abstract class 
LinshareBlobExportMechanismIntegrationTest {
         .exportTo(USER_1.getUsername())
         .query(MATCH_ALL_QUERY);
 
-    private static LinshareExtension linshareExtension = new 
LinshareExtension();
+    private static final int LIMIT_TO_20_MESSAGES = 20;
+
+    private static final LinshareGuiceExtension linshareGuiceExtension = new 
LinshareGuiceExtension();
+    @RegisterExtension
+    static JamesServerExtension testExtension = new JamesServerBuilder()
+        .extension(new DockerElasticSearchExtension())
+        .extension(new CassandraExtension())
+        .extension(new RabbitMQExtension())
+        .extension(new AwsS3BlobStoreExtension())
+        .extension(linshareGuiceExtension)
+        .server(configuration -> 
GuiceJamesServer.forConfiguration(configuration)
+            .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
+            .overrideWith(binder -> 
binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
+            .overrideWith(new TestJMAPServerModule(LIMIT_TO_20_MESSAGES))
+            .overrideWith(new 
TestRabbitMQModule(DockerRabbitMQSingleton.SINGLETON))
+            .overrideWith(binder -> 
binder.bind(WebAdminConfiguration.class).toInstance(WebAdminConfiguration.TEST_CONFIGURATION))
+            .overrideWith(new TestDeleteMessageVaultPreDeletionHookModule()))
+        .build();
+
+    @RegisterExtension
+    IMAPMessageReader imapMessageReader = new IMAPMessageReader();
 
     private AccessToken homerAccessToken;
     private AccessToken bartAccessToken;
@@ -92,9 +127,6 @@ public abstract class 
LinshareBlobExportMechanismIntegrationTest {
     private RequestSpecification fakeSmtpRequestSpecification;
     private LinshareAPI user1LinshareAPI;
 
-    @RegisterExtension
-    IMAPMessageReader imapMessageReader = new IMAPMessageReader();
-
     @BeforeEach
     void setup(GuiceJamesServer jmapServer) throws Throwable {
         this.jmapServer = jmapServer;
@@ -115,11 +147,14 @@ public abstract class 
LinshareBlobExportMechanismIntegrationTest {
         MailboxProbe mailboxProbe = 
jmapServer.getProbe(MailboxProbeImpl.class);
         mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, HOMER, 
DefaultMailboxes.INBOX);
 
-        homerAccessToken = authenticateJamesUser(baseUri(jmapServer), 
Username.of(HOMER), HOMER_PASSWORD);
-        bartAccessToken = authenticateJamesUser(baseUri(jmapServer), 
Username.of(BART), BART_PASSWORD);
-        user1LinshareAPI = linshareExtension.getAPIFor(USER_1);
+        Port jmapPort = Port.of(jmapServer.getProbe(JmapGuiceProbe.class)
+            .getJmapPort());
+        homerAccessToken = authenticateJamesUser(baseUri(jmapPort), 
Username.of(HOMER), HOMER_PASSWORD);
+        bartAccessToken = authenticateJamesUser(baseUri(jmapPort), 
Username.of(BART), BART_PASSWORD);
+        user1LinshareAPI = 
linshareGuiceExtension.getLinshareJunitExtension().getAPIFor(USER_1);
 
-        fakeSmtpRequestSpecification = 
given(linshareExtension.getLinshare().fakeSmtpRequestSpecification());
+        fakeSmtpRequestSpecification = 
given(linshareGuiceExtension.getLinshareJunitExtension()
+            .getLinshare().fakeSmtpRequestSpecification());
     }
 
     @Test
@@ -226,7 +261,8 @@ public abstract class 
LinshareBlobExportMechanismIntegrationTest {
         exportVaultContent(webAdminApi, EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
 
         Document sharedDoc = 
user1LinshareAPI.receivedShares().get(0).getDocument();
-        byte[] sharedFile =  linshareExtension.downloadSharedFile(USER_1, 
sharedDoc.getId(), sharedDoc.getName());
+        byte[] sharedFile =  linshareGuiceExtension.getLinshareJunitExtension()
+            .downloadSharedFile(USER_1, sharedDoc.getId(), 
sharedDoc.getName());
 
         try (ZipAssert zipAssert = assertThatZip(new 
ByteArrayInputStream(sharedFile))) {
             zipAssert.hasEntriesSize(1);
@@ -250,7 +286,8 @@ public abstract class 
LinshareBlobExportMechanismIntegrationTest {
         exportVaultContent(webAdminApi, EXPORT_ALL_HOMER_MESSAGES_TO_USER_1);
 
         Document sharedDoc = 
user1LinshareAPI.receivedShares().get(0).getDocument();
-        byte[] sharedFile =  linshareExtension.downloadSharedFile(USER_1, 
sharedDoc.getId(), sharedDoc.getName());
+        byte[] sharedFile =  linshareGuiceExtension.getLinshareJunitExtension()
+            .downloadSharedFile(USER_1, sharedDoc.getId(), 
sharedDoc.getName());
 
         try (ZipAssert zipAssert = assertThatZip(new 
ByteArrayInputStream(sharedFile))) {
             zipAssert.hasEntriesSize(1);
@@ -279,7 +316,7 @@ public abstract class 
LinshareBlobExportMechanismIntegrationTest {
             "]";
 
         with()
-            .header("Authorization", bartAccessToken.serialize())
+            .header("Authorization", bartAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to