Skip to content

Commit 546ca66

Browse files
committed
IT correctness, refactoring, remove V1 SDK
Test all ITs against S3 again to see if there are differences in behaviour, fix S3Mock if necessary. Migrate all SDK V1 tests to SDK V2. Remove SDK V1 tests. Use Lambdas where possible for functions accepting Consumer<Builder>. Kotlification.
1 parent d4d37fd commit 546ca66

31 files changed

+2542
-4792
lines changed

integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/AclITV2.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ internal class AclITV2 : S3TestBase() {
3232

3333
@Test
3434
@S3VerifiedSuccess(year = 2024)
35-
fun testPutCannedAcl_OK(testInfo: TestInfo) {
35+
fun `put canned ACL returns OK, get ACL returns the ACL`(testInfo: TestInfo) {
3636
val sourceKey = UPLOAD_FILE_NAME
3737
val bucketName = bucketName(testInfo)
3838

@@ -44,7 +44,7 @@ internal class AclITV2 : S3TestBase() {
4444
assertThat(it.sdkHttpResponse().isSuccessful).isTrue()
4545
}
4646

47-
givenObjectV2(bucketName, sourceKey)
47+
givenObject(bucketName, sourceKey)
4848

4949
s3ClientV2.putObjectAcl {
5050
it.bucket(bucketName)
@@ -69,9 +69,9 @@ internal class AclITV2 : S3TestBase() {
6969
@Test
7070
@S3VerifiedFailure(year = 2022,
7171
reason = "Owner and Grantee not available on test AWS account.")
72-
fun testGetAcl_noAcl(testInfo: TestInfo) {
72+
fun `get ACL returns canned 'private' ACL`(testInfo: TestInfo) {
7373
val sourceKey = UPLOAD_FILE_NAME
74-
val (bucketName, _) = givenBucketAndObjectV2(testInfo, sourceKey)
74+
val (bucketName, _) = givenBucketAndObject(testInfo, sourceKey)
7575

7676
val acl = s3ClientV2.getObjectAcl {
7777
it.bucket(bucketName)
@@ -100,9 +100,9 @@ internal class AclITV2 : S3TestBase() {
100100
@Test
101101
@S3VerifiedFailure(year = 2022,
102102
reason = "Owner and Grantee not available on test AWS account.")
103-
fun testPutAndGetAcl(testInfo: TestInfo) {
103+
fun `put ACL returns OK, get ACL returns the ACL`(testInfo: TestInfo) {
104104
val sourceKey = UPLOAD_FILE_NAME
105-
val (bucketName, _) = givenBucketAndObjectV2(testInfo, sourceKey)
105+
val (bucketName, _) = givenBucketAndObject(testInfo, sourceKey)
106106

107107
val userId = "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2ab"
108108
val userName = "John Doe"

integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/AwsChunkedEndcodingITV2.kt

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2017-2024 Adobe.
2+
* Copyright 2017-2025 Adobe.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -23,8 +23,6 @@ import org.junit.jupiter.api.TestInfo
2323
import software.amazon.awssdk.core.checksums.Algorithm
2424
import software.amazon.awssdk.core.sync.RequestBody
2525
import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm
26-
import software.amazon.awssdk.services.s3.model.GetObjectRequest
27-
import software.amazon.awssdk.services.s3.model.PutObjectRequest
2826
import java.io.File
2927
import java.io.FileInputStream
3028
import java.io.InputStream
@@ -46,19 +44,19 @@ internal class AwsChunkedEndcodingITV2 : S3TestBase() {
4644
year = 2023,
4745
reason = "Only works with http endpoints"
4846
)
49-
fun testPutObject_checksum(testInfo: TestInfo) {
50-
val bucket = givenBucketV2(testInfo)
47+
fun `put object with checksum returns correct checksum, get object returns checksum`(testInfo: TestInfo) {
48+
val bucket = givenBucket(testInfo)
5149
val uploadFile = File(UPLOAD_FILE_NAME)
5250
val uploadFileIs: InputStream = FileInputStream(uploadFile)
5351
val expectedEtag = "\"${DigestUtil.hexDigest(uploadFileIs)}\""
5452
val expectedChecksum = DigestUtil.checksumFor(uploadFile.toPath(), Algorithm.SHA256)
5553

5654
val putObjectResponse = s3ClientV2.putObject(
57-
PutObjectRequest.builder()
58-
.bucket(bucket)
59-
.key(UPLOAD_FILE_NAME)
60-
.checksumAlgorithm(ChecksumAlgorithm.SHA256)
61-
.build(),
55+
{
56+
it.bucket(bucket)
57+
it.key(UPLOAD_FILE_NAME)
58+
it.checksumAlgorithm(ChecksumAlgorithm.SHA256)
59+
},
6260
RequestBody.fromFile(uploadFile)
6361
)
6462

@@ -67,12 +65,10 @@ internal class AwsChunkedEndcodingITV2 : S3TestBase() {
6765
assertThat(it).isEqualTo(expectedChecksum)
6866
}
6967

70-
s3ClientV2.getObject(
71-
GetObjectRequest.builder()
72-
.bucket(bucket)
73-
.key(UPLOAD_FILE_NAME)
74-
.build()
75-
).also { getObjectResponse ->
68+
s3ClientV2.getObject {
69+
it.bucket(bucket)
70+
it.key(UPLOAD_FILE_NAME)
71+
}.also { getObjectResponse ->
7672
assertThat(getObjectResponse.response().eTag()).isEqualTo(expectedEtag)
7773
assertThat(getObjectResponse.response().contentLength()).isEqualTo(uploadFile.length())
7874

@@ -93,26 +89,24 @@ internal class AwsChunkedEndcodingITV2 : S3TestBase() {
9389
year = 2023,
9490
reason = "Only works with http endpoints"
9591
)
96-
fun testPutObject_etagCreation(testInfo: TestInfo) {
97-
val bucket = givenBucketV2(testInfo)
92+
fun `put object creates correct etag, get object returns etag`(testInfo: TestInfo) {
93+
val bucket = givenBucket(testInfo)
9894
val uploadFile = File(UPLOAD_FILE_NAME)
9995
val uploadFileIs: InputStream = FileInputStream(uploadFile)
10096
val expectedEtag = "\"${DigestUtil.hexDigest(uploadFileIs)}\""
10197

10298
s3ClientV2.putObject(
103-
PutObjectRequest.builder()
104-
.bucket(bucket)
105-
.key(UPLOAD_FILE_NAME)
106-
.build(),
99+
{
100+
it.bucket(bucket)
101+
it.key(UPLOAD_FILE_NAME)
102+
},
107103
RequestBody.fromFile(uploadFile)
108104
)
109105

110-
s3ClientV2.getObject(
111-
GetObjectRequest.builder()
112-
.bucket(bucket)
113-
.key(UPLOAD_FILE_NAME)
114-
.build()
115-
).also {
106+
s3ClientV2.getObject {
107+
it.bucket(bucket)
108+
it.key(UPLOAD_FILE_NAME)
109+
}.also {
116110
assertThat(it.response().eTag()).isEqualTo(expectedEtag)
117111
assertThat(it.response().contentLength()).isEqualTo(uploadFile.length())
118112
}

integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/BucketV1IT.kt

Lines changed: 0 additions & 153 deletions
This file was deleted.

0 commit comments

Comments
 (0)