Skip to content

Commit f5c852e

Browse files
committed
Porting Cloudformation integration test to use waiter test util.
1 parent bb92004 commit f5c852e

File tree

6 files changed

+29
-666
lines changed

6 files changed

+29
-666
lines changed

services/cloudformation/src/it/java/software/amazon/awssdk/services/cloudformation/SendEmptyListIntegrationTest.java

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,21 @@
1919
import static org.hamcrest.Matchers.not;
2020
import static org.junit.Assert.assertThat;
2121

22+
import java.time.Duration;
2223
import java.util.Collections;
2324
import java.util.List;
2425
import org.junit.After;
2526
import org.junit.Before;
2627
import org.junit.Test;
2728
import software.amazon.awssdk.core.auth.StaticCredentialsProvider;
2829
import software.amazon.awssdk.core.regions.Region;
29-
import software.amazon.awssdk.core.waiters.WaiterParameters;
3030
import software.amazon.awssdk.services.cloudformation.model.CreateStackRequest;
3131
import software.amazon.awssdk.services.cloudformation.model.DeleteStackRequest;
3232
import software.amazon.awssdk.services.cloudformation.model.DescribeStacksRequest;
33+
import software.amazon.awssdk.services.cloudformation.model.StackStatus;
3334
import software.amazon.awssdk.services.cloudformation.model.Tag;
3435
import software.amazon.awssdk.services.cloudformation.model.UpdateStackRequest;
35-
import software.amazon.awssdk.services.cloudformation.waiters.CloudFormationClientWaiters;
36+
import software.amazon.awssdk.testutils.Waiter;
3637
import software.amazon.awssdk.testutils.service.AwsIntegrationTestBase;
3738

3839
/**
@@ -62,7 +63,6 @@ public class SendEmptyListIntegrationTest extends AwsIntegrationTestBase {
6263
"}";
6364

6465
private CloudFormationClient cf;
65-
private CloudFormationClientWaiters waiters;
6666
private String stackName;
6767

6868
@Before
@@ -78,10 +78,7 @@ public void setup() {
7878
.templateBody(STARTING_TEMPLATE)
7979
.tags(Tag.builder().key("FooKey").value("FooValue").build()).build());
8080

81-
waiters = new CloudFormationClientWaiters(cf);
82-
83-
waiters.stackCreateComplete()
84-
.run(getWaiterParameters(stackName));
81+
waitUntilComplete(StackStatus.CREATE_COMPLETE);
8582
}
8683

8784
@After
@@ -96,8 +93,8 @@ public void explicitlyEmptyTagList_RemovesTagsFromStack() {
9693
.stackName(stackName)
9794
.templateBody(STARTING_TEMPLATE)
9895
.tags(Collections.emptyList()).build());
99-
waiters.stackUpdateComplete()
100-
.run(getWaiterParameters(stackName));
96+
97+
waitUntilComplete(StackStatus.UPDATE_COMPLETE);
10198
assertThat(getTagsForStack(stackName), empty());
10299
}
103100

@@ -107,20 +104,22 @@ public void autoConstructedEmptyTagList_DoesNotRemoveTagsFromStack() {
107104
cf.updateStack(UpdateStackRequest.builder()
108105
.stackName(stackName)
109106
.templateBody(UPDATED_TEMPLATE).build());
110-
waiters.stackUpdateComplete()
111-
.run(getWaiterParameters(stackName));
107+
108+
waitUntilComplete(StackStatus.UPDATE_COMPLETE);
112109
assertThat(getTagsForStack(stackName), not(empty()));
113110
}
114111

112+
private void waitUntilComplete(StackStatus expectedStatus) {
113+
Waiter.run(() -> cf.describeStacks(r -> r.stackName(stackName)))
114+
.until(r -> r.stacks().size() == 1 && r.stacks().get(0).stackStatus() == expectedStatus)
115+
.failOn(r -> r.stacks().size() == 1 && r.stacks().get(0).stackStatus() == StackStatus.ROLLBACK_IN_PROGRESS)
116+
.orFailAfter(Duration.ofMinutes(2));
117+
}
118+
115119
private List<Tag> getTagsForStack(String stackName) {
116120
return cf.describeStacks(
117121
DescribeStacksRequest.builder().stackName(stackName).build())
118122
.stacks().get(0)
119123
.tags();
120124
}
121-
122-
private WaiterParameters<DescribeStacksRequest> getWaiterParameters(String stackName) {
123-
return new WaiterParameters<>(
124-
DescribeStacksRequest.builder().stackName(stackName).build());
125-
}
126125
}

services/cloudformation/src/it/java/software/amazon/awssdk/services/cloudformation/waiters/CloudFormationClientWaiters.java

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

services/cloudformation/src/it/java/software/amazon/awssdk/services/cloudformation/waiters/DescribeStacksFunction.java

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

0 commit comments

Comments
 (0)