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 b00095c89d6171323a5de2fd0b4eaae16d2b28c8
Author: Quan Tran <[email protected]>
AuthorDate: Mon Jul 13 22:58:39 2026 +0700

    [BUILD] DisabledCapabilityContract: isolate using different users
---
 .../contract/DisabledCapabilityContract.scala      | 28 +++++++++++++++++++---
 .../memory/MemoryDisabledCapabilityTest.java       |  1 +
 2 files changed, 26 insertions(+), 3 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/DisabledCapabilityContract.scala
 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala
index 69e7b1da81..be98b5d6e0 100644
--- 
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala
+++ 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala
@@ -19,12 +19,17 @@
 
 package org.apache.james.jmap.rfc8621.contract
 
+import java.nio.charset.StandardCharsets
+import java.util.UUID
+
+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_OK
 import org.apache.james.GuiceJamesServer
+import org.apache.james.core.Username
 import org.apache.james.jmap.core.ResponseObject.SESSION_STATE
 import org.apache.james.jmap.core.{CapabilityIdentifier, 
JmapRfc8621Configuration}
 import org.apache.james.jmap.http.UserCredential
@@ -33,6 +38,11 @@ import 
org.apache.james.jmap.rfc8621.contract.SessionRoutesContract.expected_ses
 import org.apache.james.utils.DataProbeImpl
 import org.junit.jupiter.api.{BeforeEach, Test}
 
+object DisabledCapabilityContractContext {
+  case class TestContext(bobUsername: Username, bobAccountId: String)
+  val currentContext: java.util.concurrent.atomic.AtomicReference[TestContext] 
= new java.util.concurrent.atomic.AtomicReference[TestContext]()
+}
+
 object DisabledCapabilityContract {
   val configuration: JmapRfc8621Configuration = 
JmapRfc8621Configuration(urlPrefixString = "http://127.0.0.1";,
     websocketPrefixString = "ws://127.0.0.1",
@@ -123,15 +133,24 @@ object DisabledCapabilityContract {
 
 trait DisabledCapabilityContract {
 
+  import DisabledCapabilityContractContext.currentContext
+
+  def bobUsername: Username = currentContext.get().bobUsername
+  def bobAccountId: String = currentContext.get().bobAccountId
+
   @BeforeEach
   def setUp(server: GuiceJamesServer): Unit = {
+    val uniqueSuffix = UUID.randomUUID().toString.replace("-", "").take(8)
+    val bob = Username.fromLocalPartWithDomain(s"bob$uniqueSuffix", DOMAIN)
+    currentContext.set(DisabledCapabilityContractContext.TestContext(
+      bob, Hashing.sha256().hashString(bob.asString(), 
StandardCharsets.UTF_8).toString))
     server.getProbe(classOf[DataProbeImpl])
       .fluent()
       .addDomain(DOMAIN.asString())
-      .addUser(BOB.asString(), BOB_PASSWORD)
+      .addUser(bobUsername.asString(), BOB_PASSWORD)
 
     requestSpecification = baseRequestSpecBuilder(server)
-        .setAuth(authScheme(UserCredential(BOB, BOB_PASSWORD)))
+        .setAuth(authScheme(UserCredential(bobUsername, BOB_PASSWORD)))
       .build
   }
 
@@ -189,6 +208,9 @@ trait DisabledCapabilityContract {
       .body()
       .asString()
 
-    
assertThatJson(sessionJson).isEqualTo(DisabledCapabilityContract.expected_session_object)
+    assertThatJson(sessionJson).isEqualTo(
+      DisabledCapabilityContract.expected_session_object
+        
.replace("29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6", 
bobAccountId)
+        .replace("[email protected]", bobUsername.asString))
   }
 }
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/MemoryDisabledCapabilityTest.java
 
b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java
index 8502f83d32..f877669b5a 100644
--- 
a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java
+++ 
b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java
@@ -44,5 +44,6 @@ public class MemoryDisabledCapabilityTest implements 
DisabledCapabilityContract
         .server(configuration -> 
MemoryJamesServerMain.createServer(configuration)
             .overrideWith(binder -> 
binder.bind(JmapRfc8621Configuration.class).toInstance(DisabledCapabilityContract.configuration()))
             .overrideWith(new TestJMAPServerModule(), new 
DelegationProbeModule(), new IdentityProbeModule()))
+        .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
         .build();
 }


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

Reply via email to