This is an automated email from the ASF dual-hosted git repository. rouazana pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 3d3d54008400eff590077af3d325be7248a38e43 Author: Rene Cordier <[email protected]> AuthorDate: Fri Jul 19 15:33:54 2019 +0700 JAMES-2829 extract BlobStore function call into a local variable in all BlobStore contracts for better clarity --- .../apache/james/blob/api/BlobStoreContract.java | 103 ++++++++++++--------- .../james/blob/api/BucketBlobStoreContract.java | 76 ++++++++++----- .../james/blob/api/DeleteBlobStoreContract.java | 75 ++++++++------- .../blob/api/MetricableBlobStoreContract.java | 54 +++++++---- 4 files changed, 187 insertions(+), 121 deletions(-) diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java index cd63407..1b25ada 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java @@ -44,167 +44,184 @@ public interface BlobStoreContract { @Test default void saveShouldThrowWhenNullData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - assertThatThrownBy(() -> testee().save(defaultBucketName, (byte[]) null).block()) + assertThatThrownBy(() -> store.save(defaultBucketName, (byte[]) null).block()) .isInstanceOf(NullPointerException.class); } @Test default void saveShouldThrowWhenNullString() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - assertThatThrownBy(() -> testee().save(defaultBucketName, (String) null).block()) + assertThatThrownBy(() -> store.save(defaultBucketName, (String) null).block()) .isInstanceOf(NullPointerException.class); } @Test default void saveShouldThrowWhenNullInputStream() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - assertThatThrownBy(() -> testee().save(defaultBucketName, (InputStream) null).block()) + assertThatThrownBy(() -> store.save(defaultBucketName, (InputStream) null).block()) .isInstanceOf(NullPointerException.class); } @Test default void saveShouldSaveEmptyData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, EMPTY_BYTEARRAY).block(); + BlobId blobId = store.save(defaultBucketName, EMPTY_BYTEARRAY).block(); - byte[] bytes = testee().readBytes(defaultBucketName, blobId).block(); + byte[] bytes = store.readBytes(defaultBucketName, blobId).block(); assertThat(new String(bytes, StandardCharsets.UTF_8)).isEmpty(); } @Test default void saveShouldSaveEmptyString() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, new String()).block(); + BlobId blobId = store.save(defaultBucketName, new String()).block(); - byte[] bytes = testee().readBytes(defaultBucketName, blobId).block(); + byte[] bytes = store.readBytes(defaultBucketName, blobId).block(); assertThat(new String(bytes, StandardCharsets.UTF_8)).isEmpty(); } @Test default void saveShouldSaveEmptyInputStream() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, new ByteArrayInputStream(EMPTY_BYTEARRAY)).block(); + BlobId blobId = store.save(defaultBucketName, new ByteArrayInputStream(EMPTY_BYTEARRAY)).block(); - byte[] bytes = testee().readBytes(defaultBucketName, blobId).block(); + byte[] bytes = store.readBytes(defaultBucketName, blobId).block(); assertThat(new String(bytes, StandardCharsets.UTF_8)).isEmpty(); } @Test default void saveShouldReturnBlobId() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); + BlobId blobId = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); assertThat(blobId).isEqualTo(blobIdFactory().from("31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66")); } @Test default void saveShouldReturnBlobIdOfString() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, SHORT_STRING).block(); + BlobId blobId = store.save(defaultBucketName, SHORT_STRING).block(); assertThat(blobId).isEqualTo(blobIdFactory().from("31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66")); } @Test default void saveShouldReturnBlobIdOfInputStream() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, new ByteArrayInputStream(SHORT_BYTEARRAY)).block(); + BlobId blobId = store.save(defaultBucketName, new ByteArrayInputStream(SHORT_BYTEARRAY)).block(); assertThat(blobId).isEqualTo(blobIdFactory().from("31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66")); } @Test default void readBytesShouldThrowWhenNoExisting() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - assertThatThrownBy(() -> testee().readBytes(defaultBucketName, blobIdFactory().from("unknown")).block()) + assertThatThrownBy(() -> store.readBytes(defaultBucketName, blobIdFactory().from("unknown")).block()) .isExactlyInstanceOf(ObjectStoreException.class); } @Test default void readBytesShouldReturnSavedData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); + BlobId blobId = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); - byte[] bytes = testee().readBytes(defaultBucketName, blobId).block(); + byte[] bytes = store.readBytes(defaultBucketName, blobId).block(); assertThat(bytes).isEqualTo(SHORT_BYTEARRAY); } @Test default void readBytesShouldReturnLongSavedData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, ELEVEN_KILOBYTES).block(); + BlobId blobId = store.save(defaultBucketName, ELEVEN_KILOBYTES).block(); - byte[] bytes = testee().readBytes(defaultBucketName, blobId).block(); + byte[] bytes = store.readBytes(defaultBucketName, blobId).block(); assertThat(bytes).isEqualTo(ELEVEN_KILOBYTES); } @Test default void readBytesShouldReturnBigSavedData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, TWELVE_MEGABYTES).block(); + BlobId blobId = store.save(defaultBucketName, TWELVE_MEGABYTES).block(); - byte[] bytes = testee().readBytes(defaultBucketName, blobId).block(); + byte[] bytes = store.readBytes(defaultBucketName, blobId).block(); assertThat(bytes).isEqualTo(TWELVE_MEGABYTES); } @Test default void readShouldThrowWhenNoExistingStream() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - assertThatThrownBy(() -> testee().read(defaultBucketName, blobIdFactory().from("unknown"))) + assertThatThrownBy(() -> store.read(defaultBucketName, blobIdFactory().from("unknown"))) .isInstanceOf(ObjectStoreException.class); } @Test default void readShouldReturnSavedData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); + BlobId blobId = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); - InputStream read = testee().read(defaultBucketName, blobId); + InputStream read = store.read(defaultBucketName, blobId); assertThat(read).hasSameContentAs(new ByteArrayInputStream(SHORT_BYTEARRAY)); } @Test default void readShouldReturnLongSavedData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, ELEVEN_KILOBYTES).block(); + BlobId blobId = store.save(defaultBucketName, ELEVEN_KILOBYTES).block(); - InputStream read = testee().read(defaultBucketName, blobId); + InputStream read = store.read(defaultBucketName, blobId); assertThat(read).hasSameContentAs(new ByteArrayInputStream(ELEVEN_KILOBYTES)); } @Test default void readShouldReturnBigSavedData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); // 12 MB of text - BlobId blobId = testee().save(defaultBucketName, TWELVE_MEGABYTES).block(); + BlobId blobId = store.save(defaultBucketName, TWELVE_MEGABYTES).block(); - InputStream read = testee().read(defaultBucketName, blobId); + InputStream read = store.read(defaultBucketName, blobId); assertThat(read).hasSameContentAs(new ByteArrayInputStream(TWELVE_MEGABYTES)); } diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreContract.java index d52d703..a36feb2 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreContract.java @@ -41,89 +41,113 @@ public interface BucketBlobStoreContract { @Test default void deleteBucketShouldThrowWhenNullBucketName() { - assertThatThrownBy(() -> testee().deleteBucket(null).block()) + BlobStore store = testee(); + + assertThatThrownBy(() -> store.deleteBucket(null).block()) .isInstanceOf(NullPointerException.class); } @Test default void deleteBucketShouldDeleteExistingBucketWithItsData() { - BlobId blobId = testee().save(CUSTOM, SHORT_BYTEARRAY).block(); - testee().deleteBucket(CUSTOM).block(); + BlobStore store = testee(); + + BlobId blobId = store.save(CUSTOM, SHORT_BYTEARRAY).block(); + store.deleteBucket(CUSTOM).block(); - assertThatThrownBy(() -> testee().read(CUSTOM, blobId)) + assertThatThrownBy(() -> store.read(CUSTOM, blobId)) .isInstanceOf(ObjectStoreException.class); } @Test default void deleteBucketShouldBeIdempotent(){ - testee().save(CUSTOM, SHORT_BYTEARRAY).block(); - testee().deleteBucket(CUSTOM).block(); + BlobStore store = testee(); - assertThatCode(() -> testee().deleteBucket(CUSTOM).block()) + store.save(CUSTOM, SHORT_BYTEARRAY).block(); + store.deleteBucket(CUSTOM).block(); + + assertThatCode(() -> store.deleteBucket(CUSTOM).block()) .doesNotThrowAnyException(); } @Test default void saveBytesShouldThrowWhenNullBucketName() { - assertThatThrownBy(() -> testee().save(null, SHORT_BYTEARRAY).block()) + BlobStore store = testee(); + + assertThatThrownBy(() -> store.save(null, SHORT_BYTEARRAY).block()) .isInstanceOf(NullPointerException.class); } @Test default void saveStringShouldThrowWhenNullBucketName() { - assertThatThrownBy(() -> testee().save(null, SHORT_STRING).block()) + BlobStore store = testee(); + + assertThatThrownBy(() -> store.save(null, SHORT_STRING).block()) .isInstanceOf(NullPointerException.class); } @Test default void saveInputStreamShouldThrowWhenNullBucketName() { - assertThatThrownBy(() -> testee().save(null, new ByteArrayInputStream(SHORT_BYTEARRAY)).block()) + BlobStore store = testee(); + + assertThatThrownBy(() -> store.save(null, new ByteArrayInputStream(SHORT_BYTEARRAY)).block()) .isInstanceOf(NullPointerException.class); } @Test default void readShouldThrowWhenNullBucketName() { - BlobId blobId = testee().save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); - assertThatThrownBy(() -> testee().read(null, blobId)) + BlobStore store = testee(); + + BlobId blobId = store.save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); + assertThatThrownBy(() -> store.read(null, blobId)) .isInstanceOf(NullPointerException.class); } @Test default void readBytesStreamShouldThrowWhenNullBucketName() { - BlobId blobId = testee().save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); - assertThatThrownBy(() -> testee().readBytes(null, blobId).block()) + BlobStore store = testee(); + + BlobId blobId = store.save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); + assertThatThrownBy(() -> store.readBytes(null, blobId).block()) .isInstanceOf(NullPointerException.class); } @Test default void readStringShouldThrowWhenBucketDoesNotExist() { - BlobId blobId = testee().save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); - assertThatThrownBy(() -> testee().read(CUSTOM, blobId)) + BlobStore store = testee(); + + BlobId blobId = store.save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); + assertThatThrownBy(() -> store.read(CUSTOM, blobId)) .isInstanceOf(ObjectStoreException.class); } @Test default void readBytesStreamShouldThrowWhenBucketDoesNotExist() { - BlobId blobId = testee().save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); - assertThatThrownBy(() -> testee().readBytes(CUSTOM, blobId).block()) + BlobStore store = testee(); + + BlobId blobId = store.save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); + assertThatThrownBy(() -> store.readBytes(CUSTOM, blobId).block()) .isInstanceOf(ObjectStoreException.class); } @Test default void shouldBeAbleToSaveDataInMultipleBuckets() { - BlobId blobIdDefault = testee().save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); - BlobId blobIdCustom = testee().save(CUSTOM, SHORT_BYTEARRAY).block(); + BlobStore store = testee(); - byte[] bytesDefault = testee().readBytes(BucketName.DEFAULT, blobIdDefault).block(); - byte[] bytesCustom = testee().readBytes(CUSTOM, blobIdCustom).block(); + BlobId blobIdDefault = store.save(BucketName.DEFAULT, SHORT_BYTEARRAY).block(); + BlobId blobIdCustom = store.save(CUSTOM, SHORT_BYTEARRAY).block(); + + byte[] bytesDefault = store.readBytes(BucketName.DEFAULT, blobIdDefault).block(); + byte[] bytesCustom = store.readBytes(CUSTOM, blobIdCustom).block(); assertThat(bytesDefault).isEqualTo(bytesCustom); } @Test default void saveConcurrentlyWithNonPreExistingBucketShouldNotFail() throws Exception { + BlobStore store = testee(); + ConcurrentTestRunner.builder() - .operation(((threadNumber, step) -> testee().save(CUSTOM, SHORT_STRING + threadNumber + step).block())) + .operation(((threadNumber, step) -> store.save(CUSTOM, SHORT_STRING + threadNumber + step).block())) .threadCount(10) .operationCount(10) .runSuccessfullyWithin(Duration.ofMinutes(1)); @@ -131,10 +155,12 @@ public interface BucketBlobStoreContract { @Test default void deleteBucketConcurrentlyShouldNotFail() throws Exception { - testee().save(CUSTOM, SHORT_BYTEARRAY).block(); + BlobStore store = testee(); + + store.save(CUSTOM, SHORT_BYTEARRAY).block(); ConcurrentTestRunner.builder() - .operation(((threadNumber, step) -> testee().deleteBucket(CUSTOM).block())) + .operation(((threadNumber, step) -> store.deleteBucket(CUSTOM).block())) .threadCount(10) .operationCount(10) .runSuccessfullyWithin(Duration.ofMinutes(1)); diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreContract.java index 1602a6f..58d8e32 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreContract.java @@ -49,56 +49,61 @@ public interface DeleteBlobStoreContract { @Test default void deleteShouldNotThrowWhenBlobDoesNotExist() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - assertThatCode(() -> testee().delete(defaultBucketName, blobIdFactory().randomId()).block()) + assertThatCode(() -> store.delete(defaultBucketName, blobIdFactory().randomId()).block()) .doesNotThrowAnyException(); } @Test default void deleteShouldDeleteExistingBlobData() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); - testee().delete(defaultBucketName, blobId).block(); + BlobId blobId = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); + store.delete(defaultBucketName, blobId).block(); - assertThatThrownBy(() -> testee().read(defaultBucketName, blobId)) + assertThatThrownBy(() -> store.read(defaultBucketName, blobId)) .isInstanceOf(ObjectStoreException.class); } @Test default void deleteShouldBeIdempotent() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); - testee().delete(defaultBucketName, blobId).block(); + BlobId blobId = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); + store.delete(defaultBucketName, blobId).block(); - assertThatCode(() -> testee().delete(defaultBucketName, blobId).block()) + assertThatCode(() -> store.delete(defaultBucketName, blobId).block()) .doesNotThrowAnyException(); } @Test default void deleteShouldNotDeleteOtherBlobs() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobIdToDelete = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); - BlobId otherBlobId = testee().save(defaultBucketName, ELEVEN_KILOBYTES).block(); + BlobId blobIdToDelete = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); + BlobId otherBlobId = store.save(defaultBucketName, ELEVEN_KILOBYTES).block(); - testee().delete(defaultBucketName, blobIdToDelete).block(); + store.delete(defaultBucketName, blobIdToDelete).block(); - InputStream read = testee().read(defaultBucketName, otherBlobId); + InputStream read = store.read(defaultBucketName, otherBlobId); assertThat(read).hasSameContentAs(new ByteArrayInputStream(ELEVEN_KILOBYTES)); } @Test default void deleteConcurrentlyShouldNotFail() throws Exception { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, TWELVE_MEGABYTES).block(); + BlobId blobId = store.save(defaultBucketName, TWELVE_MEGABYTES).block(); ConcurrentTestRunner.builder() - .operation(((threadNumber, step) -> testee().delete(defaultBucketName, blobId).block())) + .operation(((threadNumber, step) -> store.delete(defaultBucketName, blobId).block())) .threadCount(10) .operationCount(10) .runSuccessfullyWithin(Duration.ofMinutes(1)); @@ -106,48 +111,52 @@ public interface DeleteBlobStoreContract { @Test default void deleteShouldThrowWhenNullBucketName() { - assertThatThrownBy(() -> testee().delete(null, blobIdFactory().randomId()).block()) + BlobStore store = testee(); + assertThatThrownBy(() -> store.delete(null, blobIdFactory().randomId()).block()) .isInstanceOf(NullPointerException.class); } @Test default void deleteShouldNotDeleteFromOtherBucket() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId customBlobId = testee().save(CUSTOM, "custom_string").block(); - BlobId defaultBlobId = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); + BlobId customBlobId = store.save(CUSTOM, "custom_string").block(); + BlobId defaultBlobId = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); - testee().delete(CUSTOM, customBlobId).block(); + store.delete(CUSTOM, customBlobId).block(); - InputStream read = testee().read(defaultBucketName, defaultBlobId); + InputStream read = store.read(defaultBucketName, defaultBlobId); assertThat(read).hasSameContentAs(new ByteArrayInputStream(SHORT_BYTEARRAY)); } @Test default void deleteShouldNotDeleteFromOtherBucketWhenSameBlobId() { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - testee().save(CUSTOM, SHORT_BYTEARRAY).block(); - BlobId blobId = testee().save(defaultBucketName, SHORT_BYTEARRAY).block(); + store.save(CUSTOM, SHORT_BYTEARRAY).block(); + BlobId blobId = store.save(defaultBucketName, SHORT_BYTEARRAY).block(); - testee().delete(defaultBucketName, blobId).block(); + store.delete(defaultBucketName, blobId).block(); - InputStream read = testee().read(CUSTOM, blobId); + InputStream read = store.read(CUSTOM, blobId); assertThat(read).hasSameContentAs(new ByteArrayInputStream(SHORT_BYTEARRAY)); } @Test default void readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob() throws Exception { - BucketName defaultBucketName = testee().getDefaultBucketName(); + BlobStore store = testee(); + BucketName defaultBucketName = store.getDefaultBucketName(); - BlobId blobId = testee().save(defaultBucketName, TWELVE_MEGABYTES).block(); + BlobId blobId = store.save(defaultBucketName, TWELVE_MEGABYTES).block(); ConcurrentTestRunner.builder() .operation(((threadNumber, step) -> { try { - InputStream read = testee().read(defaultBucketName, blobId); + InputStream read = store.read(defaultBucketName, blobId); if (!IOUtils.toString(read, StandardCharsets.UTF_8).equals(TWELVE_MEGABYTES_STRING)) { throw new RuntimeException("Should not read partial blob when an other thread is deleting it"); @@ -156,7 +165,7 @@ public interface DeleteBlobStoreContract { // normal behavior here } - testee().delete(defaultBucketName, blobId).block(); + store.delete(defaultBucketName, blobId).block(); })) .threadCount(10) .operationCount(10) diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java index e3c50c9..efe2b8d 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java @@ -59,8 +59,10 @@ public interface MetricableBlobStoreContract extends BlobStoreContract { @Test default void saveBytesShouldPublishSaveBytesTimerMetrics() { - testee().save(testee().getDefaultBucketName(), BYTES_CONTENT).block(); - testee().save(testee().getDefaultBucketName(), BYTES_CONTENT).block(); + BlobStore store = testee(); + + store.save(store.getDefaultBucketName(), BYTES_CONTENT).block(); + store.save(store.getDefaultBucketName(), BYTES_CONTENT).block(); assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_BYTES_TIMER_NAME)) .hasSize(2); @@ -68,8 +70,10 @@ public interface MetricableBlobStoreContract extends BlobStoreContract { @Test default void saveStringShouldPublishSaveBytesTimerMetrics() { - testee().save(testee().getDefaultBucketName(), STRING_CONTENT).block(); - testee().save(testee().getDefaultBucketName(), STRING_CONTENT).block(); + BlobStore store = testee(); + + store.save(store.getDefaultBucketName(), STRING_CONTENT).block(); + store.save(store.getDefaultBucketName(), STRING_CONTENT).block(); assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_BYTES_TIMER_NAME)) .hasSize(2); @@ -77,8 +81,10 @@ public interface MetricableBlobStoreContract extends BlobStoreContract { @Test default void saveInputStreamShouldPublishSaveInputStreamTimerMetrics() { - testee().save(testee().getDefaultBucketName(), new ByteArrayInputStream(BYTES_CONTENT)).block(); - testee().save(testee().getDefaultBucketName(), new ByteArrayInputStream(BYTES_CONTENT)).block(); + BlobStore store = testee(); + + store.save(store.getDefaultBucketName(), new ByteArrayInputStream(BYTES_CONTENT)).block(); + store.save(store.getDefaultBucketName(), new ByteArrayInputStream(BYTES_CONTENT)).block(); assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_INPUT_STREAM_TIMER_NAME)) .hasSize(2); @@ -86,9 +92,11 @@ public interface MetricableBlobStoreContract extends BlobStoreContract { @Test default void readBytesShouldPublishReadBytesTimerMetrics() { - BlobId blobId = testee().save(testee().getDefaultBucketName(), BYTES_CONTENT).block(); - testee().readBytes(testee().getDefaultBucketName(), blobId).block(); - testee().readBytes(testee().getDefaultBucketName(), blobId).block(); + BlobStore store = testee(); + + BlobId blobId = store.save(store.getDefaultBucketName(), BYTES_CONTENT).block(); + store.readBytes(store.getDefaultBucketName(), blobId).block(); + store.readBytes(store.getDefaultBucketName(), blobId).block(); assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(READ_BYTES_TIMER_NAME)) .hasSize(2); @@ -96,9 +104,11 @@ public interface MetricableBlobStoreContract extends BlobStoreContract { @Test default void readShouldPublishReadTimerMetrics() { - BlobId blobId = testee().save(testee().getDefaultBucketName(), BYTES_CONTENT).block(); - testee().read(testee().getDefaultBucketName(), blobId); - testee().read(testee().getDefaultBucketName(), blobId); + BlobStore store = testee(); + + BlobId blobId = store.save(store.getDefaultBucketName(), BYTES_CONTENT).block(); + store.read(store.getDefaultBucketName(), blobId); + store.read(store.getDefaultBucketName(), blobId); assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(READ_TIMER_NAME)) .hasSize(2); @@ -106,12 +116,14 @@ public interface MetricableBlobStoreContract extends BlobStoreContract { @Test default void deleteBucketShouldPublishDeleteBucketTimerMetrics() { + BlobStore store = testee(); + BucketName bucketName = BucketName.of("custom"); - testee().save(BucketName.DEFAULT, BYTES_CONTENT).block(); - testee().save(bucketName, BYTES_CONTENT).block(); + store.save(BucketName.DEFAULT, BYTES_CONTENT).block(); + store.save(bucketName, BYTES_CONTENT).block(); - testee().deleteBucket(BucketName.DEFAULT).block(); - testee().deleteBucket(bucketName).block(); + store.deleteBucket(BucketName.DEFAULT).block(); + store.deleteBucket(bucketName).block(); assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(DELETE_BUCKET_TIMER_NAME)) .hasSize(2); @@ -119,11 +131,13 @@ public interface MetricableBlobStoreContract extends BlobStoreContract { @Test default void deleteShouldPublishDeleteTimerMetrics() { - BlobId blobId1 = testee().save(testee().getDefaultBucketName(), BYTES_CONTENT).block(); - BlobId blobId2 = testee().save(testee().getDefaultBucketName(), BYTES_CONTENT).block(); + BlobStore store = testee(); + + BlobId blobId1 = store.save(store.getDefaultBucketName(), BYTES_CONTENT).block(); + BlobId blobId2 = store.save(store.getDefaultBucketName(), BYTES_CONTENT).block(); - testee().delete(BucketName.DEFAULT, blobId1).block(); - testee().delete(BucketName.DEFAULT, blobId2).block(); + store.delete(BucketName.DEFAULT, blobId1).block(); + store.delete(BucketName.DEFAULT, blobId2).block(); assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(DELETE_TIMER_NAME)) .hasSize(2); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
