Skip to content

Commit 9a96e71

Browse files
kessplasimabhichow
andauthored
Test object key (#71)
* appends a unique string to each object key to avoid collisions when multiple tests run at the same time --------- Co-authored-by: Darwin Chowdary <[email protected]>
1 parent ee61abd commit 9a96e71

File tree

10 files changed

+105
-86
lines changed

10 files changed

+105
-86
lines changed

src/examples/java/software/amazon/encryption/s3/examples/PartialKeyPairExample.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,16 @@
2020

2121
import static org.junit.jupiter.api.Assertions.assertEquals;
2222
import static org.junit.jupiter.api.Assertions.fail;
23+
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.appendTestSuffix;
2324

2425
public class PartialKeyPairExample {
2526

2627
private static final String OBJECT_CONTENT = "Hello, world!";
2728

2829
// Use unique object keys for each example
29-
private static final String PUBLIC_AND_PRIVATE_KEY_OBJECT_KEY = "PublicAndPrivateKeyTestObject";
30-
private static final String PUBLIC_KEY_OBJECT_KEY = "PublicKeyTestObject";
31-
private static final String PRIVATE_KEY_OBJECT_KEY = "PrivateKeyTestObject";
30+
private static final String PUBLIC_AND_PRIVATE_KEY_OBJECT_KEY = appendTestSuffix("PublicAndPrivateKeyTestObject");
31+
private static final String PUBLIC_KEY_OBJECT_KEY = appendTestSuffix("PublicKeyTestObject");
32+
private static final String PRIVATE_KEY_OBJECT_KEY = appendTestSuffix("PrivateKeyTestObject");
3233

3334
private static final Set<ObjectIdentifier> PARTIAL_KEY_PAIR_EXAMPLE_OBJECT_KEYS = Stream
3435
.of(PUBLIC_AND_PRIVATE_KEY_OBJECT_KEY, PUBLIC_KEY_OBJECT_KEY, PRIVATE_KEY_OBJECT_KEY)

src/main/java/software/amazon/encryption/s3/S3EncryptionClient.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ public PutObjectResponse putObject(PutObjectRequest putObjectRequest, RequestBod
132132
.cryptoMaterialsManager(_cryptoMaterialsManager)
133133
.secureRandom(_secureRandom)
134134
.build();
135-
136135
return pipeline.putObject(putObjectRequest, requestBody);
137136
}
138137

src/test/java/software/amazon/encryption/s3/S3AsyncEncryptionClientTest.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import static org.junit.jupiter.api.Assertions.assertEquals;
3939
import static org.junit.jupiter.api.Assertions.assertThrows;
4040
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.BUCKET;
41+
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.appendTestSuffix;
4142
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.deleteObject;
4243

4344
public class S3AsyncEncryptionClientTest {
@@ -53,7 +54,7 @@ public static void setUp() throws NoSuchAlgorithmException {
5354

5455
@Test
5556
public void putAsyncGetDefault() {
56-
final String objectKey = "put-async-get-default";
57+
final String objectKey = appendTestSuffix("put-async-get-default");
5758

5859
S3Client v3Client = S3EncryptionClient.builder()
5960
.aesKey(AES_KEY)
@@ -86,7 +87,7 @@ public void putAsyncGetDefault() {
8687

8788
@Test
8889
public void putDefaultGetAsync() {
89-
final String objectKey = "put-default-get-async";
90+
final String objectKey = appendTestSuffix("put-default-get-async");
9091

9192
S3Client v3Client = S3EncryptionClient.builder()
9293
.aesKey(AES_KEY)
@@ -119,7 +120,7 @@ public void putDefaultGetAsync() {
119120

120121
@Test
121122
public void aesCbcV1toV3Async() {
122-
final String objectKey = "aes-cbc-v1-to-v3-async";
123+
final String objectKey = appendTestSuffix("aes-cbc-v1-to-v3-async");
123124

124125
// V1 Client
125126
EncryptionMaterialsProvider materialsProvider =
@@ -155,7 +156,7 @@ public void aesCbcV1toV3Async() {
155156

156157
@Test
157158
public void AsyncAesGcmV2toV3WithInstructionFile() {
158-
final String objectKey = "async-aes-gcm-v2-to-v3-with-instruction-file";
159+
final String objectKey = appendTestSuffix("async-aes-gcm-v2-to-v3-with-instruction-file");
159160

160161
// V2 Client
161162
EncryptionMaterialsProvider materialsProvider =
@@ -191,7 +192,7 @@ public void AsyncAesGcmV2toV3WithInstructionFile() {
191192

192193
@Test
193194
public void deleteObjectWithInstructionFileSuccessAsync() {
194-
final String objectKey = "async-delete-object-with-instruction-file";
195+
final String objectKey = appendTestSuffix("async-delete-object-with-instruction-file");
195196

196197
// V2 Client
197198
EncryptionMaterialsProvider materialsProvider =
@@ -234,9 +235,9 @@ public void deleteObjectWithInstructionFileSuccessAsync() {
234235

235236
@Test
236237
public void deleteObjectsWithInstructionFilesSuccessAsync() {
237-
final String[] objectKeys = {"async-delete-object-with-instruction-file-1",
238-
"async-delete-object-with-instruction-file-2",
239-
"async-delete-object-with-instruction-file-3"};
238+
final String[] objectKeys = {appendTestSuffix("async-delete-object-with-instruction-file-1"),
239+
appendTestSuffix("async-delete-object-with-instruction-file-2"),
240+
appendTestSuffix("async-delete-object-with-instruction-file-3")};
240241

241242
// V2 Client
242243
EncryptionMaterialsProvider materialsProvider =

src/test/java/software/amazon/encryption/s3/S3EncryptionClientCompatibilityTest.java

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package software.amazon.encryption.s3;
22

3-
import static org.junit.jupiter.api.Assertions.assertEquals;
4-
import static org.junit.jupiter.api.Assertions.assertThrows;
5-
import static software.amazon.encryption.s3.S3EncryptionClient.withAdditionalConfiguration;
6-
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.deleteObject;
7-
83
import com.amazonaws.regions.Region;
94
import com.amazonaws.regions.Regions;
105
import com.amazonaws.services.s3.AmazonS3Encryption;
@@ -21,7 +16,17 @@
2116
import com.amazonaws.services.s3.model.KMSEncryptionMaterials;
2217
import com.amazonaws.services.s3.model.KMSEncryptionMaterialsProvider;
2318
import com.amazonaws.services.s3.model.StaticEncryptionMaterialsProvider;
19+
import org.junit.jupiter.api.BeforeAll;
20+
import org.junit.jupiter.api.Test;
21+
import software.amazon.awssdk.core.ResponseBytes;
22+
import software.amazon.awssdk.core.sync.RequestBody;
23+
import software.amazon.awssdk.services.s3.S3Client;
24+
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
25+
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
26+
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
2427

28+
import javax.crypto.KeyGenerator;
29+
import javax.crypto.SecretKey;
2530
import java.io.ByteArrayInputStream;
2631
import java.io.IOException;
2732
import java.nio.charset.StandardCharsets;
@@ -30,17 +35,12 @@
3035
import java.security.NoSuchAlgorithmException;
3136
import java.util.HashMap;
3237
import java.util.Map;
33-
import javax.crypto.KeyGenerator;
34-
import javax.crypto.SecretKey;
3538

36-
import org.junit.jupiter.api.BeforeAll;
37-
import org.junit.jupiter.api.Test;
38-
import software.amazon.awssdk.core.ResponseBytes;
39-
import software.amazon.awssdk.core.sync.RequestBody;
40-
import software.amazon.awssdk.services.s3.S3Client;
41-
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
42-
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
43-
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
39+
import static org.junit.jupiter.api.Assertions.assertEquals;
40+
import static org.junit.jupiter.api.Assertions.assertThrows;
41+
import static software.amazon.encryption.s3.S3EncryptionClient.withAdditionalConfiguration;
42+
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.appendTestSuffix;
43+
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.deleteObject;
4444

4545
/**
4646
* This class is an integration test for verifying compatibility of ciphertexts
@@ -68,7 +68,7 @@ public static void setUp() throws NoSuchAlgorithmException {
6868

6969
@Test
7070
public void AesCbcV1toV3() {
71-
final String objectKey = "aes-cbc-v1-to-v3";
71+
final String objectKey = appendTestSuffix("aes-cbc-v1-to-v3");
7272

7373
// V1 Client
7474
EncryptionMaterialsProvider materialsProvider =
@@ -103,7 +103,7 @@ public void AesCbcV1toV3() {
103103

104104
@Test
105105
public void AesWrapV1toV3() {
106-
final String objectKey = "aes-wrap-v1-to-v3";
106+
final String objectKey = appendTestSuffix("aes-wrap-v1-to-v3");
107107

108108
// V1 Client
109109
EncryptionMaterialsProvider materialsProvider =
@@ -138,7 +138,7 @@ public void AesWrapV1toV3() {
138138

139139
@Test
140140
public void AesGcmV2toV3() {
141-
final String objectKey = "aes-gcm-v2-to-v3";
141+
final String objectKey = appendTestSuffix("aes-gcm-v2-to-v3");
142142

143143
// V2 Client
144144
EncryptionMaterialsProvider materialsProvider =
@@ -169,7 +169,7 @@ public void AesGcmV2toV3() {
169169

170170
@Test
171171
public void AesGcmV2toV3WithInstructionFile() {
172-
final String objectKey = "aes-gcm-v2-to-v3-with-instruction-file";
172+
final String objectKey = appendTestSuffix("aes-gcm-v2-to-v3-with-instruction-file");
173173

174174
// V2 Client
175175
EncryptionMaterialsProvider materialsProvider =
@@ -205,7 +205,7 @@ public void AesGcmV2toV3WithInstructionFile() {
205205

206206
@Test
207207
public void AesGcmV3toV1() {
208-
final String objectKey = "aes-gcm-v3-to-v1";
208+
final String objectKey = appendTestSuffix("aes-gcm-v3-to-v1");
209209

210210
// V1 Client
211211
EncryptionMaterialsProvider materialsProvider =
@@ -238,7 +238,7 @@ public void AesGcmV3toV1() {
238238

239239
@Test
240240
public void AesGcmV3toV2() {
241-
final String objectKey = "aes-gcm-v3-to-v2";
241+
final String objectKey = appendTestSuffix("aes-gcm-v3-to-v2");
242242

243243
// V2 Client
244244
EncryptionMaterialsProvider materialsProvider =
@@ -268,7 +268,7 @@ public void AesGcmV3toV2() {
268268

269269
@Test
270270
public void AesGcmV3toV3() {
271-
final String objectKey = "aes-gcm-v3-to-v3";
271+
final String objectKey = appendTestSuffix("aes-gcm-v3-to-v3");
272272

273273
// V3 Client
274274
S3Client v3Client = S3EncryptionClient.builder()
@@ -295,7 +295,7 @@ public void AesGcmV3toV3() {
295295

296296
@Test
297297
public void RsaEcbV1toV3() {
298-
final String objectKey = "rsa-ecb-v1-to-v3";
298+
final String objectKey = appendTestSuffix("rsa-ecb-v1-to-v3");
299299

300300
// V1 Client
301301
EncryptionMaterialsProvider materialsProvider =
@@ -330,7 +330,7 @@ public void RsaEcbV1toV3() {
330330

331331
@Test
332332
public void RsaOaepV2toV3() {
333-
final String objectKey = "rsa-oaep-v2-to-v3";
333+
final String objectKey = appendTestSuffix("rsa-oaep-v2-to-v3");
334334

335335
// V2 Client
336336
EncryptionMaterialsProvider materialsProvider =
@@ -364,7 +364,7 @@ public void RsaOaepV2toV3() {
364364

365365
@Test
366366
public void RsaOaepV3toV1() {
367-
final String objectKey = "rsa-oaep-v3-to-v1";
367+
final String objectKey = appendTestSuffix("rsa-oaep-v3-to-v1");
368368

369369
// V1 Client
370370
EncryptionMaterialsProvider materialsProvider =
@@ -397,7 +397,7 @@ public void RsaOaepV3toV1() {
397397

398398
@Test
399399
public void RsaOaepV3toV2() {
400-
final String objectKey = "rsa-oaep-v3-to-v2";
400+
final String objectKey = appendTestSuffix("rsa-oaep-v3-to-v2");
401401

402402
// V2 Client
403403
EncryptionMaterialsProvider materialsProvider =
@@ -427,7 +427,7 @@ public void RsaOaepV3toV2() {
427427

428428
@Test
429429
public void RsaOaepV3toV3() {
430-
final String objectKey = "rsa-oaep-v3-to-v3";
430+
final String objectKey = appendTestSuffix("rsa-oaep-v3-to-v3");
431431

432432
// V3 Client
433433
S3Client v3Client = S3EncryptionClient.builder()
@@ -454,7 +454,7 @@ public void RsaOaepV3toV3() {
454454

455455
@Test
456456
public void KmsV1toV3() {
457-
final String objectKey = "kms-v1-to-v3";
457+
final String objectKey = appendTestSuffix("kms-v1-to-v3");
458458

459459
// V1 Client
460460
EncryptionMaterialsProvider materialsProvider = new KMSEncryptionMaterialsProvider(KMS_KEY_ID);
@@ -491,7 +491,7 @@ public void KmsV1toV3() {
491491

492492
@Test
493493
public void KmsContextV2toV3() {
494-
final String objectKey = "kms-context-v2-to-v3";
494+
final String objectKey = appendTestSuffix("kms-context-v2-to-v3");
495495

496496
// V2 Client
497497
EncryptionMaterialsProvider materialsProvider = new KMSEncryptionMaterialsProvider(KMS_KEY_ID);
@@ -532,7 +532,7 @@ public void KmsContextV2toV3() {
532532

533533
@Test
534534
public void KmsContextV3toV1() {
535-
final String objectKey = "kms-context-v3-to-v1";
535+
final String objectKey = appendTestSuffix("kms-context-v3-to-v1");
536536

537537
// V1 Client
538538
KMSEncryptionMaterials kmsMaterials = new KMSEncryptionMaterials(KMS_KEY_ID);
@@ -574,7 +574,7 @@ public void KmsContextV3toV1() {
574574

575575
@Test
576576
public void KmsContextV3toV2() throws IOException {
577-
final String objectKey = "kms-context-v3-to-v2";
577+
final String objectKey = appendTestSuffix("kms-context-v3-to-v2");
578578

579579
// V2 Client
580580
KMSEncryptionMaterials kmsMaterials = new KMSEncryptionMaterials(KMS_KEY_ID);
@@ -612,7 +612,7 @@ public void KmsContextV3toV2() throws IOException {
612612

613613
@Test
614614
public void KmsContextV3toV3() {
615-
final String objectKey = "kms-context-v3-to-v3";
615+
final String objectKey = appendTestSuffix("kms-context-v3-to-v3");
616616

617617
// V3 Client
618618
S3Client v3Client = S3EncryptionClient.builder()
@@ -646,7 +646,7 @@ public void KmsContextV3toV3() {
646646

647647
@Test
648648
public void AesCbcV1toV3FailsWhenLegacyModeDisabled() {
649-
final String objectKey = "aes-cbc-v1-to-v3";
649+
final String objectKey = appendTestSuffix("aes-cbc-v1-to-v3");
650650

651651
EncryptionMaterialsProvider materialsProvider =
652652
new StaticEncryptionMaterialsProvider(new EncryptionMaterials(AES_KEY));
@@ -676,7 +676,7 @@ public void AesCbcV1toV3FailsWhenLegacyModeDisabled() {
676676

677677
@Test
678678
public void AesWrapV1toV3FailsWhenLegacyModeDisabled() {
679-
final String objectKey = "aes-wrap-v1-to-v3";
679+
final String objectKey = appendTestSuffix("aes-wrap-v1-to-v3");
680680

681681
EncryptionMaterialsProvider materialsProvider =
682682
new StaticEncryptionMaterialsProvider(new EncryptionMaterials(AES_KEY));

src/test/java/software/amazon/encryption/s3/S3EncryptionClientMultipartUploadTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import static software.amazon.encryption.s3.S3EncryptionClient.withAdditionalConfiguration;
3838
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.BUCKET;
3939
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.KMS_KEY_ID;
40+
import static software.amazon.encryption.s3.utils.S3EncryptionClientTestResources.appendTestSuffix;
4041

4142
public class S3EncryptionClientMultipartUploadTest {
4243
private static SecretKey AES_KEY;
@@ -50,7 +51,7 @@ public static void setUp() throws NoSuchAlgorithmException {
5051

5152
@Test
5253
public void multipartPutObject() throws IOException {
53-
final String objectKey = "multipart-put-object";
54+
final String objectKey = appendTestSuffix("multipart-put-object");
5455

5556
final long fileSizeLimit = 1024 * 1024 * 100;
5657
final InputStream inputStream = new BoundedZerosInputStream(fileSizeLimit);
@@ -92,7 +93,7 @@ public void multipartPutObject() throws IOException {
9293

9394
@Test
9495
public void multipartUploadV3OutputStream() throws IOException {
95-
final String objectKey = "multipart-upload-v3-output-stream";
96+
final String objectKey = appendTestSuffix("multipart-upload-v3-output-stream");
9697

9798
// Overall "file" is 100MB, split into 10MB parts
9899
final long fileSizeLimit = 1024 * 1024 * 100;

0 commit comments

Comments
 (0)