Skip to content

Commit 90ff1c0

Browse files
Karthikeyanpalpatim
authored andcommitted
[S3] Fix testRoundTrip to wait for lifecycle configuration to be created (#1076)
1 parent 2db2334 commit 90ff1c0

File tree

1 file changed

+35
-5
lines changed

1 file changed

+35
-5
lines changed

aws-android-sdk-s3-test/src/androidTest/java/com/amazonaws/services/s3/LifecycleVersioningIntegrationTest.java

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
* Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
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.
@@ -15,6 +15,8 @@
1515

1616
package com.amazonaws.services.s3;
1717

18+
import android.util.Log;
19+
1820
import com.amazonaws.regions.Region;
1921
import com.amazonaws.regions.Regions;
2022
import com.amazonaws.services.s3.model.BucketLifecycleConfiguration;
@@ -29,19 +31,24 @@
2931
import org.junit.BeforeClass;
3032
import org.junit.Test;
3133

34+
import static org.junit.Assert.assertTrue;
35+
3236
public class LifecycleVersioningIntegrationTest extends S3IntegrationTestBase {
3337

3438
private static final String BUCKET_NAME =
3539
"lifecycle-versioning-integration-test-"
3640
+ System.currentTimeMillis();
3741

42+
private static final String TAG = LifecycleVersioningIntegrationTest.class.getSimpleName();
43+
3844
@BeforeClass
3945
public static void setUp() throws Exception {
4046
setUpCredentials();
41-
s3 = new AmazonS3Client(credentials);
42-
s3.setRegion(Region.getRegion(Regions.US_WEST_2));
47+
s3 = new AmazonS3Client(credentials, Region.getRegion(Regions.US_WEST_2));
4348

4449
s3.createBucket(BUCKET_NAME);
50+
S3IntegrationTestBase.waitForBucketCreation(BUCKET_NAME);
51+
assertTrue(BUCKET_NAME + " should exist.", s3.doesBucketExist(BUCKET_NAME));
4552

4653
s3.setBucketVersioningConfiguration(
4754
new SetBucketVersioningConfigurationRequest(
@@ -80,8 +87,7 @@ public void testRoundTrip() throws Exception {
8087
.withNoncurrentVersionExpirationInDays(60)
8188
));
8289

83-
BucketLifecycleConfiguration result =
84-
s3.getBucketLifecycleConfiguration(BUCKET_NAME);
90+
BucketLifecycleConfiguration result = waitForBucketLifecycleConfigurationCreated(BUCKET_NAME);
8591

8692
Assert.assertEquals(2, result.getRules().size());
8793

@@ -95,4 +101,28 @@ public void testRoundTrip() throws Exception {
95101
.getNoncurrentVersionTransition().getStorageClass());
96102
Assert.assertEquals(60, result.getRules().get(1).getNoncurrentVersionExpirationInDays());
97103
}
104+
105+
/**
106+
* waiting a lifecycle configuration become deleted When exceed the poll
107+
* time, will throw Max poll time exceeded exception
108+
*/
109+
private static BucketLifecycleConfiguration waitForBucketLifecycleConfigurationCreated(String bucketName)
110+
throws Exception {
111+
long startTime = System.currentTimeMillis();
112+
long endTime = startTime + (10 * 60 * 1000);
113+
int hits = 0;
114+
while (System.currentTimeMillis() < endTime) {
115+
BucketLifecycleConfiguration bucketLifecycleConfiguration = null;
116+
117+
if ((bucketLifecycleConfiguration = s3.getBucketLifecycleConfiguration(bucketName)) == null) {
118+
Log.d(TAG, "Waiting for BucketLifecycleConfiguration for bucket: " + bucketName + " to be created.");
119+
Thread.sleep(1000);
120+
hits = 0;
121+
}
122+
if (hits++ == 10)
123+
return bucketLifecycleConfiguration;
124+
}
125+
maxPollTimeExceeded();
126+
return null;
127+
}
98128
}

0 commit comments

Comments
 (0)