Skip to content

Commit 8e434cf

Browse files
added checksum test for largeobjects
1 parent e2cb286 commit 8e434cf

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

services/s3/src/it/java/software/amazon/awssdk/services/s3/presignedurl/AsyncPresignedUrlManagerTestSuite.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import static org.apache.commons.lang3.RandomStringUtils.randomAscii;
1818
import static org.assertj.core.api.Assertions.assertThat;
1919

20+
import java.io.ByteArrayInputStream;
2021
import java.net.URL;
2122
import java.nio.charset.StandardCharsets;
2223
import java.nio.file.Path;
@@ -51,6 +52,7 @@
5152
import software.amazon.awssdk.services.s3.presignedurl.model.PresignedUrlGetObjectRequest;
5253
import software.amazon.awssdk.services.s3.utils.S3TestUtils;
5354
import software.amazon.awssdk.testutils.service.S3BucketUtils;
55+
import software.amazon.awssdk.utils.Md5Utils;
5456

5557
/**
5658
* Abstract test suite for AsyncPresignedUrlManager integration tests.
@@ -125,15 +127,24 @@ void getObject_withValidPresignedUrl_returnsContent(String testDescription,
125127
PresignedUrlGetObjectRequest request = createRequestForKey(objectKey);
126128

127129
CompletableFuture<ResponseBytes<GetObjectResponse>> future =
128-
presignedUrlManager.getObject(request, AsyncResponseTransformer.toBytes());
130+
presignedUrlManager.getObject(request, AsyncResponseTransformer.toBytes());
129131
ResponseBytes<GetObjectResponse> response = future.get();
130132

131133
assertThat(response).isNotNull();
132134
if (expectedContent != null) {
133135
assertThat(response.asUtf8String()).isEqualTo(expectedContent);
134136
assertThat(response.response().contentLength()).isEqualTo(expectedContent.length());
137+
} else {
138+
try (ByteArrayInputStream originalStream = new ByteArrayInputStream(testLargeObjectContent);
139+
ByteArrayInputStream downloadedStream = new ByteArrayInputStream(response.asByteArray())) {
140+
141+
String originalMd5 = Md5Utils.md5AsBase64(originalStream);
142+
String downloadedMd5 = Md5Utils.md5AsBase64(downloadedStream);
143+
assertThat(downloadedMd5).isEqualTo(originalMd5);
144+
assertThat(response.asByteArray().length).isEqualTo(testLargeObjectContent.length);
145+
}
146+
assertThat(response.response()).isNotNull();
135147
}
136-
assertThat(response.response()).isNotNull();
137148
}
138149

139150
@Test

0 commit comments

Comments
 (0)