This is an automated email from the ASF dual-hosted git repository.

chibenwa pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit fa93023ae17a3123caadd64d620482c7dd5bd090
Author: Quan Tran <[email protected]>
AuthorDate: Mon Jul 13 19:41:51 2026 +0700

    [BUILD] EmailImportContract: isolate using different users
---
 .../rfc8621/contract/EmailImportContract.scala     | 176 ++++++++++++---------
 .../jmap/rfc8621/memory/MemoryEmailImportTest.java |   2 +-
 2 files changed, 104 insertions(+), 74 deletions(-)

diff --git 
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailImportContract.scala
 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailImportContract.scala
index fd595488c4..f7555cdb86 100644
--- 
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailImportContract.scala
+++ 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailImportContract.scala
@@ -22,13 +22,17 @@ package org.apache.james.jmap.rfc8621.contract
 import java.nio.charset.StandardCharsets
 import java.time.ZonedDateTime
 import java.time.format.DateTimeFormatter
+import java.util.UUID
+import java.util.concurrent.atomic
 
+import com.google.common.hash.Hashing
 import io.netty.handler.codec.http.HttpHeaderNames.ACCEPT
 import io.restassured.RestAssured._
 import io.restassured.http.ContentType.JSON
 import net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson
 import org.apache.http.HttpStatus.{SC_CREATED, SC_OK}
 import org.apache.james.GuiceJamesServer
+import org.apache.james.core.Username
 import org.apache.james.core.quota.QuotaCountLimit
 import org.apache.james.jmap.core.ResponseObject.SESSION_STATE
 import org.apache.james.jmap.core.UTCDate
@@ -44,18 +48,44 @@ import org.assertj.core.api.SoftAssertions
 import org.junit.jupiter.api.{BeforeEach, Test}
 import play.api.libs.json.{JsString, Json}
 
+object EmailImportContract {
+  case class TestContext(bobUsername: Username, bobAccountId: String, 
andreUsername: Username, aliceUsername: Username)
+
+  val currentContext: atomic.AtomicReference[TestContext] = new 
atomic.AtomicReference[TestContext]()
+}
+
 trait EmailImportContract {
+  import EmailImportContract.{TestContext, currentContext}
+
+  def bobUsername: Username = currentContext.get().bobUsername
+  def bobAccountId: String = currentContext.get().bobAccountId
+  def andreUsername: Username = currentContext.get().andreUsername
+  def aliceUsername: Username = currentContext.get().aliceUsername
+
+  private def accountId(username: Username): String =
+    Hashing.sha256().hashString(username.asString(), 
StandardCharsets.UTF_8).toString
+
   private lazy val UTC_DATE_FORMAT = 
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssX")
 
   @BeforeEach
   def setUp(server: GuiceJamesServer): Unit = {
+    val uniqueSuffix = UUID.randomUUID().toString.replace("-", "").take(8)
+    val bob = Username.fromLocalPartWithDomain(s"bob$uniqueSuffix", DOMAIN)
+    val andre = Username.fromLocalPartWithDomain(s"andre$uniqueSuffix", DOMAIN)
+    val alice = Username.fromLocalPartWithDomain(s"alice$uniqueSuffix", DOMAIN)
+    currentContext.set(TestContext(
+      bobUsername = bob,
+      bobAccountId = accountId(bob),
+      andreUsername = andre,
+      aliceUsername = alice))
+
     server.getProbe(classOf[DataProbeImpl])
       .fluent()
       .addDomain(DOMAIN.asString())
-      .addUser(BOB.asString(), BOB_PASSWORD)
+      .addUser(bob.asString(), BOB_PASSWORD)
 
     requestSpecification = baseRequestSpecBuilder(server)
-        .setAuth(authScheme(UserCredential(BOB, BOB_PASSWORD)))
+        .setAuth(authScheme(UserCredential(bob, BOB_PASSWORD)))
       .build
   }
 
@@ -143,7 +173,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldAddTheMailInTheMailbox(server: GuiceJamesServer): Unit = {
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -152,7 +182,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -169,7 +199,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -186,7 +216,7 @@ trait EmailImportContract {
               |      "c1"],
               |    ["Email/get",
               |     {
-              |       "accountId": "$ACCOUNT_ID",
+              |       "accountId": "$bobAccountId",
               |       "ids": ["#C42"],
               |       "properties": ["keywords", "mailboxIds", "receivedAt", 
"subject", "size", "bodyValues", "htmlBody"],
               |       "fetchHTMLBodyValues": true
@@ -220,7 +250,7 @@ trait EmailImportContract {
       s"""    [
          |        ["Email/import",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "created": {
          |                    "C42": {
          |                        "id": "$messageId",
@@ -232,7 +262,7 @@ trait EmailImportContract {
          |            }, "c1"],
          |        ["Email/get",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "notFound": [],
          |                "list": [
          |                    {
@@ -270,7 +300,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldSucceedWhenEmptyKeyword(server: GuiceJamesServer): Unit = {
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -279,7 +309,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -296,7 +326,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -311,7 +341,7 @@ trait EmailImportContract {
               |      "c1"],
               |    ["Email/get",
               |     {
-              |       "accountId": "$ACCOUNT_ID",
+              |       "accountId": "$bobAccountId",
               |       "ids": ["#C42"],
               |       "properties": ["keywords", "mailboxIds", "receivedAt", 
"subject", "size", "bodyValues", "htmlBody"],
               |       "fetchHTMLBodyValues": true
@@ -345,7 +375,7 @@ trait EmailImportContract {
       s"""    [
          |        ["Email/import",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "created": {
          |                    "C42": {
          |                        "id": "$messageId",
@@ -357,7 +387,7 @@ trait EmailImportContract {
          |            }, "c1"],
          |        ["Email/get",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "notFound": [],
          |                "list": [
          |                    {
@@ -393,7 +423,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldSucceedWhenNoKeyword(server: GuiceJamesServer): Unit = {
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -402,7 +432,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -419,7 +449,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -433,7 +463,7 @@ trait EmailImportContract {
               |      "c1"],
               |    ["Email/get",
               |     {
-              |       "accountId": "$ACCOUNT_ID",
+              |       "accountId": "$bobAccountId",
               |       "ids": ["#C42"],
               |       "properties": ["keywords", "mailboxIds", "receivedAt", 
"subject", "size", "bodyValues", "htmlBody"],
               |       "fetchHTMLBodyValues": true
@@ -467,7 +497,7 @@ trait EmailImportContract {
       s"""    [
          |        ["Email/import",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "created": {
          |                    "C42": {
          |                        "id": "$messageId",
@@ -479,7 +509,7 @@ trait EmailImportContract {
          |            }, "c1"],
          |        ["Email/get",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "notFound": [],
          |                "list": [
          |                    {
@@ -515,7 +545,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldSucceedWhenNoReceivedAt(server: GuiceJamesServer): Unit = {
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -524,7 +554,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -540,7 +570,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -553,7 +583,7 @@ trait EmailImportContract {
               |      "c1"],
               |    ["Email/get",
               |     {
-              |       "accountId": "$ACCOUNT_ID",
+              |       "accountId": "$bobAccountId",
               |       "ids": ["#C42"],
               |       "properties": ["keywords", "mailboxIds", "receivedAt", 
"subject", "size", "bodyValues", "htmlBody"],
               |       "fetchHTMLBodyValues": true
@@ -587,7 +617,7 @@ trait EmailImportContract {
       s"""    [
          |        ["Email/import",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "created": {
          |                    "C42": {
          |                        "id": "$messageId",
@@ -599,7 +629,7 @@ trait EmailImportContract {
          |            }, "c1"],
          |        ["Email/get",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "notFound": [],
          |                "list": [
          |                    {
@@ -636,15 +666,15 @@ trait EmailImportContract {
   @Test
   def importShouldEnforceQuotas(server: GuiceJamesServer): Unit = {
     val quotaProbe = server.getProbe(classOf[QuotaProbesImpl])
-    
quotaProbe.setMaxMessageCount(quotaProbe.getQuotaRoot(MailboxPath.inbox(BOB)), 
QuotaCountLimit.count(0L))
-    val id1 = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(MailboxPath.inbox(BOB))
+    
quotaProbe.setMaxMessageCount(quotaProbe.getQuotaRoot(MailboxPath.inbox(bobUsername)),
 QuotaCountLimit.count(0L))
+    val id1 = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(MailboxPath.inbox(bobUsername))
 
     val uploadResponse: String = `given`
       .basePath("")
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -661,7 +691,7 @@ trait EmailImportContract {
          |    "urn:ietf:params:jmap:mail",
          |    "urn:apache:james:params:jmap:mail:shares"],
          |  "methodCalls": [["Email/import", {
-         |        "accountId": "$ACCOUNT_ID",
+         |        "accountId": "$bobAccountId",
          |        "emails": {
          |           "C42": {
          |             "blobId": "$blobId",
@@ -696,11 +726,11 @@ trait EmailImportContract {
            |   "sessionState": "2c9f1b12-b35a-43e6-9af2-0106fb53a943",
            |   "methodResponses": [
            |           ["Email/import", {
-           |                   "accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+           |                   "accountId": "$bobAccountId",
            |                   "notCreated": {
            |                           "C42": {
            |                                   "type": "overQuota",
-           |                                   "description": "You have too 
many messages in #private&[email protected]"
+           |                                   "description": "You have too 
many messages in #private&${bobUsername.asString}"
            |                           }
            |                   }
            |           }, "c1"]
@@ -710,7 +740,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldAddTheMailsInTheMailbox(server: GuiceJamesServer): Unit = {
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -719,7 +749,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -731,7 +761,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/html.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -749,7 +779,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId1",
@@ -776,7 +806,7 @@ trait EmailImportContract {
               |      "c1"],
               |    ["Email/get",
               |     {
-              |       "accountId": "$ACCOUNT_ID",
+              |       "accountId": "$bobAccountId",
               |       "ids": ["#C42", "#C43"],
               |       "properties": ["subject"],
               |       "fetchHTMLBodyValues": true
@@ -817,7 +847,7 @@ trait EmailImportContract {
          |        [
          |            "Email/import",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "created": {
          |                    "C42": {
          |                        "id": "$messageId1",
@@ -838,7 +868,7 @@ trait EmailImportContract {
          |        [
          |            "Email/get",
          |            {
-         |                "accountId": "$ACCOUNT_ID",
+         |                "accountId": "$bobAccountId",
          |                "notFound": [],
          |                "list": [
          |                    {
@@ -860,7 +890,7 @@ trait EmailImportContract {
   def importShouldDisplayOldAndNewState(server: GuiceJamesServer): Unit = {
     val oldState: String = retrieveEmailState
 
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -869,7 +899,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -886,7 +916,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -939,7 +969,7 @@ trait EmailImportContract {
          |  "urn:ietf:params:jmap:mail"],
          |  "methodCalls": [
          |    ["Email/get", {
-         |      "accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+         |      "accountId": "$bobAccountId",
          |      "ids":[]
          |    }, "c1"]
          |  ]
@@ -952,7 +982,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldFailWhenMailboxNotOwned(server: GuiceJamesServer): Unit = {
-    val alicePath = MailboxPath.inbox(ALICE)
+    val alicePath = MailboxPath.inbox(aliceUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(alicePath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -961,7 +991,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body("whatever")
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -978,7 +1008,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -1011,7 +1041,7 @@ trait EmailImportContract {
       s"""[
            |  "Email/import",
            |  {
-           |    
"accountId":"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+           |    "accountId":"$bobAccountId",
            |    "notCreated":{
            |      "C42":{
            |        "type":"notFound",
@@ -1025,18 +1055,18 @@ trait EmailImportContract {
 
   @Test
   def importShouldSucceedWhenMailboxDelegated(server: GuiceJamesServer): Unit 
= {
-    val andrePath = MailboxPath.inbox(ANDRE)
+    val andrePath = MailboxPath.inbox(andreUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(andrePath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
     server.getProbe(classOf[ACLProbeImpl])
-      .replaceRights(andrePath, BOB.asString, new 
MailboxACL.Rfc4314Rights(Right.Insert, Right.Lookup, Right.Read))
+      .replaceRights(andrePath, bobUsername.asString, new 
MailboxACL.Rfc4314Rights(Right.Insert, Right.Lookup, Right.Read))
 
     val uploadResponse: String = `given`
       .basePath("")
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(ClassLoader.getSystemResourceAsStream("eml/alternative.eml"))
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -1053,7 +1083,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -1096,7 +1126,7 @@ trait EmailImportContract {
       s"""[
            |  "Email/import",
            |  {
-           |    "accountId":"$ACCOUNT_ID",
+           |    "accountId":"$bobAccountId",
            |    "created":{
            |      "C42":{
            |        "id":"$messageId",
@@ -1112,9 +1142,9 @@ trait EmailImportContract {
 
   @Test
   def importShouldFailWhenBlobNotOwned(server: GuiceJamesServer): Unit = {
-    val andrePath = MailboxPath.inbox(ANDRE)
+    val andrePath = MailboxPath.inbox(andreUsername)
     server.getProbe(classOf[MailboxProbeImpl]).createMailbox(andrePath)
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val bobId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -1124,7 +1154,7 @@ trait EmailImportContract {
       .setBody("testmail", StandardCharsets.UTF_8)
       .build
     val messageId: MessageId = server.getProbe(classOf[MailboxProbeImpl])
-      .appendMessage(ANDRE.asString, andrePath, AppendCommand.from(message))
+      .appendMessage(andreUsername.asString, andrePath, 
AppendCommand.from(message))
       .getMessageId
     val blobId: String = messageId.serialize()
 
@@ -1136,7 +1166,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -1169,7 +1199,7 @@ trait EmailImportContract {
       s"""[
            |  "Email/import",
            |  {
-           |    
"accountId":"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+           |    "accountId":"$bobAccountId",
            |    "notCreated":{
            |      "C42":{
            |        "type":"notFound",
@@ -1183,9 +1213,9 @@ trait EmailImportContract {
 
   @Test
   def importShouldSucceedWhenBlobDelegated(server: GuiceJamesServer): Unit = {
-    val andrePath = MailboxPath.inbox(ANDRE)
+    val andrePath = MailboxPath.inbox(andreUsername)
     server.getProbe(classOf[MailboxProbeImpl]).createMailbox(andrePath)
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val bobId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -1195,11 +1225,11 @@ trait EmailImportContract {
       .setBody("testmail", StandardCharsets.UTF_8)
       .build
     val blobId: String = server.getProbe(classOf[MailboxProbeImpl])
-      .appendMessage(ANDRE.asString, andrePath, AppendCommand.from(message))
+      .appendMessage(andreUsername.asString, andrePath, 
AppendCommand.from(message))
       .getMessageId.serialize()
 
     server.getProbe(classOf[ACLProbeImpl])
-      .replaceRights(andrePath, BOB.asString, new 
MailboxACL.Rfc4314Rights(Right.Insert, Right.Lookup, Right.Read))
+      .replaceRights(andrePath, bobUsername.asString, new 
MailboxACL.Rfc4314Rights(Right.Insert, Right.Lookup, Right.Read))
 
     val receivedAtString = UTCDate(receivedAt).asUTC.format(UTC_DATE_FORMAT)
     val response = `given`
@@ -1209,7 +1239,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -1252,7 +1282,7 @@ trait EmailImportContract {
       s"""[
            |  "Email/import",
            |  {
-           |    "accountId":"$ACCOUNT_ID",
+           |    "accountId":"$bobAccountId",
            |    "created":{
            |      "C42":{
            |        "id":"$messageId",
@@ -1275,7 +1305,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body("whatever")
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -1292,7 +1322,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -1323,7 +1353,7 @@ trait EmailImportContract {
       s"""[
            |  "Email/import",
            |  {
-           |    
"accountId":"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+           |    "accountId":"$bobAccountId",
            |    "notCreated":{
            |      "C42":{
            |        "type":"invalidArguments",
@@ -1344,7 +1374,7 @@ trait EmailImportContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body("whatever")
     .when
-      .post(s"/upload/$ACCOUNT_ID")
+      .post(s"/upload/$bobAccountId")
     .`then`
       .statusCode(SC_CREATED)
       .extract
@@ -1361,7 +1391,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -1395,7 +1425,7 @@ trait EmailImportContract {
       s"""[
            |  "Email/import",
            |  {
-           |    
"accountId":"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+           |    "accountId":"$bobAccountId",
            |    "notCreated":{
            |      "C42":{
            |        "type":"invalidArguments",
@@ -1409,7 +1439,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldFailWhenBlobNotFound(server: GuiceJamesServer): Unit = {
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
@@ -1423,7 +1453,7 @@ trait EmailImportContract {
               |  "methodCalls": [
               |    ["Email/import",
               |      {
-              |        "accountId": "$ACCOUNT_ID",
+              |        "accountId": "$bobAccountId",
               |        "emails": {
               |           "C42": {
               |             "blobId": "$blobId",
@@ -1454,7 +1484,7 @@ trait EmailImportContract {
       .inPath("methodResponses[0][1]")
       .isEqualTo(
       s"""{
-           |  "accountId":"$ACCOUNT_ID",
+           |  "accountId":"$bobAccountId",
            |  "notCreated":{
            |    "C42":{
            |      "type":"notFound",
@@ -1466,7 +1496,7 @@ trait EmailImportContract {
 
   @Test
   def importShouldFailWhenInvalidAccountId(server: GuiceJamesServer): Unit = {
-    val bobPath = MailboxPath.inbox(BOB)
+    val bobPath = MailboxPath.inbox(bobUsername)
     val mailboxId: MailboxId = 
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
     val receivedAt = ZonedDateTime.now().minusDays(1)
 
diff --git 
a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailImportTest.java
 
b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailImportTest.java
index ef0207584b..76aac8ec47 100644
--- 
a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailImportTest.java
+++ 
b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailImportTest.java
@@ -27,7 +27,7 @@ import org.apache.james.mailbox.inmemory.InMemoryMessageId;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageId;
 
-public class MemoryEmailImportTest extends MemoryBase implements 
EmailImportContract {
+public class MemoryEmailImportTest extends PerClassMemoryBase implements 
EmailImportContract {
     @Override
     public MessageId randomMessageId() {
         return 
InMemoryMessageId.of(ThreadLocalRandom.current().nextInt(100000) + 100);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to