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

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

commit a3987253c3e83e8f2b1c20b16d2771bc985bbb0f
Author: Benoit TELLIER <[email protected]>
AuthorDate: Thu Sep 17 09:39:36 2026 +0200

    [BUILD] Cassandra: play the 100MB test once
---
 .../blob/cassandra/CassandraBlobStoreContract.java | 25 ----------------
 .../blob/cassandra/CassandraBlobStoreTest.java     | 34 +++++++++++++++++++++-
 2 files changed, 33 insertions(+), 26 deletions(-)

diff --git 
a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreContract.java
 
b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreContract.java
index b6a6434feb..6f8883cbea 100644
--- 
a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreContract.java
+++ 
b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreContract.java
@@ -24,20 +24,15 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.mockito.Mockito.when;
 
-import java.io.IOException;
-import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.james.blob.api.BlobId;
 import org.apache.james.blob.api.MetricableBlobStoreContract;
 import org.apache.james.blob.api.ObjectStoreException;
-import org.apache.james.util.io.ZeroedInputStream;
 import org.junit.jupiter.api.Test;
 
 import com.google.common.base.Strings;
-import com.google.common.hash.Hashing;
-import com.google.common.hash.HashingInputStream;
 
 import reactor.core.publisher.Mono;
 
@@ -89,24 +84,4 @@ public interface CassandraBlobStoreContract extends 
MetricableBlobStoreContract
             .isInstanceOf(IllegalArgumentException.class)
             .hasMessage("Deleting the default bucket is forbidden");
     }
-
-    @Test
-    default void blobStoreShouldSupport100MBBlob() throws IOException {
-        ZeroedInputStream data = new ZeroedInputStream(100_000_000);
-        HashingInputStream writeHash = new 
HashingInputStream(Hashing.sha256(), data);
-        BlobId blobId = 
Mono.from(testee().save(testee().getDefaultBucketName(), writeHash, 
LOW_COST)).block();
-
-        InputStream bytes = testee().read(testee().getDefaultBucketName(), 
blobId);
-        HashingInputStream readHash = new HashingInputStream(Hashing.sha256(), 
bytes);
-        consumeStream(readHash);
-
-        
assertThat(readHash.hash().toString()).isEqualTo(writeHash.hash().toString());
-    }
-
-    private void consumeStream(InputStream tmpMsgIn) throws IOException {
-        byte[] discard = new byte[4096];
-        while (tmpMsgIn.read(discard) != -1) {
-            // consume the rest of the stream
-        }
-    }
 }
diff --git 
a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java
 
b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java
index 53ab6a26a3..9ac47f1464 100644
--- 
a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java
+++ 
b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java
@@ -19,8 +19,13 @@
 
 package org.apache.james.blob.cassandra;
 
+import static org.apache.james.blob.api.BlobStore.StoragePolicy.LOW_COST;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.spy;
 
+import java.io.IOException;
+import java.io.InputStream;
+
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.CassandraClusterExtension;
 import 
org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
@@ -32,9 +37,16 @@ import org.apache.james.blob.api.MetricableBlobStore;
 import org.apache.james.blob.api.PlainBlobId;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.server.blob.deduplication.BlobStoreFactory;
+import org.apache.james.util.io.ZeroedInputStream;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+import com.google.common.hash.Hashing;
+import com.google.common.hash.HashingInputStream;
+
+import reactor.core.publisher.Mono;
+
 public class CassandraBlobStoreTest implements CassandraBlobStoreContract, 
DeduplicationBlobStoreContract {
     @RegisterExtension
     static CassandraClusterExtension cassandraCluster = new 
CassandraClusterExtension(CassandraBlobDataDefinition.MODULE);
@@ -81,4 +93,24 @@ public class CassandraBlobStoreTest implements 
CassandraBlobStoreContract, Dedup
     public CassandraDefaultBucketDAO defaultBucketDAO() {
         return defaultBucketDAO;
     }
-}
\ No newline at end of file
+
+    @Test
+    void blobStoreShouldSupport100MBBlob() throws IOException {
+        ZeroedInputStream data = new ZeroedInputStream(100_000_000);
+        HashingInputStream writeHash = new 
HashingInputStream(Hashing.sha256(), data);
+        BlobId blobId = 
Mono.from(testee().save(testee().getDefaultBucketName(), writeHash, 
LOW_COST)).block();
+
+        InputStream bytes = testee().read(testee().getDefaultBucketName(), 
blobId);
+        HashingInputStream readHash = new HashingInputStream(Hashing.sha256(), 
bytes);
+        consumeStream(readHash);
+
+        
assertThat(readHash.hash().toString()).isEqualTo(writeHash.hash().toString());
+    }
+
+    private void consumeStream(InputStream tmpMsgIn) throws IOException {
+        byte[] discard = new byte[4096];
+        while (tmpMsgIn.read(discard) != -1) {
+            // consume the rest of the stream
+        }
+    }
+}


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

Reply via email to