@@ -33,7 +33,7 @@ void testListAllKeys(S3Client s3) {
33
33
assertNotEquals (Boolean .TRUE , result1 .isTruncated ());
34
34
assertEquals (bucket , result1 .name ());
35
35
assertNull (result1 .nextContinuationToken ());
36
- assertNull ( result1 .prefix ());
36
+ assertEquals ( "" , result1 .prefix ());
37
37
assertNull (result1 .delimiter ());
38
38
assertEquals (1000 , result1 .maxKeys ());
39
39
assertNull (result1 .encodingType ());
@@ -65,7 +65,7 @@ void testListObjectsV2EncodingType(S3Client s3) {
65
65
assertFalse (Boolean .TRUE .equals (objectsV2Result .isTruncated ()));
66
66
assertEquals (bucket , objectsV2Result .name ());
67
67
assertNull (objectsV2Result .nextContinuationToken ());
68
- assertNull ( objectsV2Result .prefix ());
68
+ assertEquals ( "" , objectsV2Result .prefix ());
69
69
assertNull (objectsV2Result .delimiter ());
70
70
assertEquals (1000 , objectsV2Result .maxKeys ());
71
71
assertEquals (EncodingType .URL , objectsV2Result .encodingType ());
@@ -93,7 +93,7 @@ void testListObjectsV2WithDelimiter(S3Client s3) {
93
93
assertEquals (bucketName , objectsV2Result .name ());
94
94
assertEquals (3 , objectsV2Result .keyCount ());
95
95
assertNull (objectsV2Result .nextContinuationToken ());
96
- assertNull ( objectsV2Result .prefix ());
96
+ assertEquals ( "" , objectsV2Result .prefix ());
97
97
assertEquals ("/" , objectsV2Result .delimiter ());
98
98
assertEquals (1000 , objectsV2Result .maxKeys ());
99
99
assertNull (objectsV2Result .encodingType ());
@@ -231,7 +231,7 @@ void testListObjectsV2Prefix(S3Client s3) {
231
231
assertEquals (2 , objectsV2Result2 .contents ().size ());
232
232
assertEquals (0 , objectsV2Result2 .commonPrefixes ().size ());
233
233
assertEquals (2 , objectsV2Result2 .keyCount ());
234
- assertNull ( objectsV2Result2 .prefix ());
234
+ assertEquals ( "" , objectsV2Result2 .prefix ());
235
235
assertEquals (1000 , objectsV2Result2 .maxKeys ());
236
236
assertNull (objectsV2Result2 .startAfter ());
237
237
assertNull (objectsV2Result2 .nextContinuationToken ());
@@ -292,7 +292,7 @@ void testListObjectsV2WithContinuationToken(S3Client s3) {
292
292
assertEquals (2 , objectsV2Result .keyCount ());
293
293
assertEquals (2 , objectsV2Result .maxKeys ());
294
294
assertNotNull (objectsV2Result .nextContinuationToken ());
295
- assertNull ( objectsV2Result .prefix ());
295
+ assertEquals ( "" , objectsV2Result .prefix ());
296
296
assertNull (objectsV2Result .delimiter ());
297
297
assertNull (objectsV2Result .encodingType ());
298
298
assertNull (objectsV2Result .continuationToken ());
@@ -308,7 +308,7 @@ void testListObjectsV2WithContinuationToken(S3Client s3) {
308
308
assertEquals (2 , objectsV2Result1 .keyCount ());
309
309
assertEquals (1000 , objectsV2Result1 .maxKeys ());
310
310
assertNull (objectsV2Result1 .nextContinuationToken ());
311
- assertNull ( objectsV2Result1 .prefix ());
311
+ assertEquals ( "" , objectsV2Result1 .prefix ());
312
312
assertNull (objectsV2Result1 .delimiter ());
313
313
assertNull (objectsV2Result1 .encodingType ());
314
314
assertEquals (objectsV2Result .nextContinuationToken (), objectsV2Result1 .continuationToken ());
@@ -327,7 +327,7 @@ void testListObjectsV2WithContinuationToken(S3Client s3) {
327
327
assertEquals (1 , objectsV2Result2 .keyCount ());
328
328
assertEquals (1 , objectsV2Result2 .maxKeys ());
329
329
assertNotNull (objectsV2Result2 .nextContinuationToken ());
330
- assertNull ( objectsV2Result2 .prefix ());
330
+ assertEquals ( "" , objectsV2Result2 .prefix ());
331
331
assertNull (objectsV2Result2 .delimiter ());
332
332
assertNull (objectsV2Result2 .encodingType ());
333
333
assertEquals (objectsV2Result .nextContinuationToken (), objectsV2Result2 .continuationToken ());
@@ -344,7 +344,7 @@ void testListObjectsV2WithContinuationToken(S3Client s3) {
344
344
assertEquals (1 , objectsV2Result3 .keyCount ());
345
345
assertEquals (1000 , objectsV2Result3 .maxKeys ());
346
346
assertNull (objectsV2Result3 .nextContinuationToken ());
347
- assertNull ( objectsV2Result3 .prefix ());
347
+ assertEquals ( "" , objectsV2Result3 .prefix ());
348
348
assertNull (objectsV2Result3 .delimiter ());
349
349
assertNull (objectsV2Result3 .encodingType ());
350
350
assertEquals (objectsV2Result2 .nextContinuationToken (), objectsV2Result3 .continuationToken ());
@@ -379,7 +379,7 @@ void testContinuationTokenWithDelimiter(S3Client s3) {
379
379
assertEquals (2 , objectsV2Result1 .keyCount ());
380
380
assertEquals (1000 , objectsV2Result1 .maxKeys ());
381
381
assertNull (objectsV2Result1 .nextContinuationToken ());
382
- assertNull ( objectsV2Result1 .prefix ());
382
+ assertEquals ( "" , objectsV2Result1 .prefix ());
383
383
assertNull (objectsV2Result1 .delimiter ());
384
384
assertNull (objectsV2Result1 .encodingType ());
385
385
assertEquals (objectsV2Result .nextContinuationToken (), objectsV2Result1 .continuationToken ());
@@ -402,7 +402,7 @@ void testContinuationTokenWithStartAfter(S3Client s3) {
402
402
assertEquals (1 , objectsV2Result .keyCount ());
403
403
assertEquals (1 , objectsV2Result .maxKeys ());
404
404
assertNotNull (objectsV2Result .nextContinuationToken ());
405
- assertNull ( objectsV2Result .prefix ());
405
+ assertEquals ( "" , objectsV2Result .prefix ());
406
406
assertNull (objectsV2Result .delimiter ());
407
407
assertNull (objectsV2Result .encodingType ());
408
408
assertNull (objectsV2Result .continuationToken ());
@@ -422,7 +422,7 @@ void testContinuationTokenWithStartAfter(S3Client s3) {
422
422
assertEquals (1 , objectsV2Result1 .keyCount ());
423
423
assertEquals (1 , objectsV2Result1 .maxKeys ());
424
424
assertNotNull (objectsV2Result1 .nextContinuationToken ());
425
- assertNull ( objectsV2Result1 .prefix ());
425
+ assertEquals ( "" , objectsV2Result1 .prefix ());
426
426
assertNull (objectsV2Result1 .delimiter ());
427
427
assertNull (objectsV2Result1 .encodingType ());
428
428
assertEquals (objectsV2Result .nextContinuationToken (), objectsV2Result1 .continuationToken ());
@@ -442,15 +442,30 @@ void testContinuationTokenWithStartAfter(S3Client s3) {
442
442
assertEquals (1 , objectsV2Result2 .keyCount ());
443
443
assertEquals (1 , objectsV2Result2 .maxKeys ());
444
444
assertNotNull (objectsV2Result2 .nextContinuationToken ());
445
- assertNull ( objectsV2Result2 .prefix ());
445
+ assertEquals ( "" , objectsV2Result2 .prefix ());
446
446
assertNull (objectsV2Result2 .delimiter ());
447
447
assertNull (objectsV2Result2 .encodingType ());
448
448
assertEquals (objectsV2Result1 .nextContinuationToken (), objectsV2Result2 .continuationToken ());
449
449
assertNull (objectsV2Result1 .startAfter ());
450
450
assertEquals ("dir2@key1" , objectsV2Result2 .contents ().get (0 ).key ());
451
451
}
452
452
453
- //@Test
453
+ @ LocalS3
454
+ @ Test
455
+ void testListObjectsWithSpecialCharsInPrefix (S3Client s3 ) throws Exception {
456
+ String bucketName = prepareKeys (s3 , "é/key1" );
457
+ ListObjectsV2Response objectsV2Result = s3 .listObjectsV2 (ListObjectsV2Request .builder ()
458
+ .bucket (bucketName )
459
+ .prefix ("é/" )
460
+ .encodingType (EncodingType .URL )
461
+ .build ());
462
+ assertEquals (1 , objectsV2Result .contents ().size ());
463
+ assertEquals (0 , objectsV2Result .commonPrefixes ().size ());
464
+ assertEquals (1 , objectsV2Result .keyCount ());
465
+ assertEquals ("é/" , objectsV2Result .prefix ());
466
+ }
467
+
468
+ // @Test
454
469
void test () {
455
470
S3Client s3 = S3Client .builder ()
456
471
.credentialsProvider (StaticCredentialsProvider .create (AwsBasicCredentials .create ("" , "" )))
0 commit comments