|
16 | 16 | #include <aws/testing/AwsTestHelpers.h>
|
17 | 17 | #include <aws/testing/TestingEnvironment.h>
|
18 | 18 | #include <aws/testing/platform/PlatformTesting.h>
|
| 19 | +#include <aws/testing/s3-test-utils/S3TestUtils.h> |
19 | 20 | #include <gtest/gtest.h>
|
20 | 21 |
|
21 | 22 | #include <random>
|
@@ -46,115 +47,23 @@ class CancelCrtRequestTest : public ::testing::Test {
|
46 | 47 | configuration.region = "us-east-1";
|
47 | 48 | m_client = Aws::MakeShared<S3CrtClient>(ALLOCATION_TAG, configuration);
|
48 | 49 |
|
49 |
| - m_bucketName = CalculateBucketName(BUCKET_NAME); |
| 50 | + m_bucketName = Testing::S3TestUtils::CalculateBucketName(BUCKET_NAME); |
50 | 51 | SCOPED_TRACE(Aws::String("FullBucketName ") + m_bucketName);
|
51 | 52 | CreateBucketRequest createBucketRequest;
|
52 | 53 | createBucketRequest.SetBucket(m_bucketName);
|
53 | 54 | createBucketRequest.SetACL(BucketCannedACL::private_);
|
54 | 55 |
|
55 | 56 | CreateBucketOutcome createBucketOutcome = m_client->CreateBucket(createBucketRequest);
|
56 | 57 | AWS_EXPECT_SUCCESS(createBucketOutcome);
|
57 |
| - EXPECT_TRUE(WaitForBucketToPropagate(m_bucketName)); |
58 |
| - TagTestBucket(m_bucketName); |
| 58 | + EXPECT_TRUE(Testing::S3TestUtils::WaitForBucketToPropagate(m_client, m_bucketName)); |
| 59 | + Testing::S3TestUtils::TagTestBucket(m_client, m_bucketName); |
59 | 60 | }
|
60 | 61 |
|
61 | 62 | void TearDown() override {
|
62 |
| - DeleteBucket(m_bucketName); |
| 63 | + Testing::S3TestUtils::DeleteBucket(m_client, m_bucketName); |
63 | 64 | m_client.reset();
|
64 | 65 | }
|
65 | 66 |
|
66 |
| - void EmptyBucket(const Aws::String& bucketName) { |
67 |
| - ListObjectsRequest listObjectsRequest; |
68 |
| - listObjectsRequest.SetBucket(bucketName); |
69 |
| - |
70 |
| - ListObjectsOutcome listObjectsOutcome = m_client->ListObjects(listObjectsRequest); |
71 |
| - |
72 |
| - if (!listObjectsOutcome.IsSuccess()) return; |
73 |
| - |
74 |
| - for (const auto& object : listObjectsOutcome.GetResult().GetContents()) { |
75 |
| - DeleteObjectRequest deleteObjectRequest; |
76 |
| - deleteObjectRequest.SetBucket(bucketName); |
77 |
| - deleteObjectRequest.SetKey(object.GetKey()); |
78 |
| - auto deleteOutcome = m_client->DeleteObject(deleteObjectRequest); |
79 |
| - AWS_UNREFERENCED_PARAM(deleteOutcome); |
80 |
| - } |
81 |
| - } |
82 |
| - |
83 |
| - void WaitForBucketToEmpty(const Aws::String& bucketName) { |
84 |
| - ListObjectsRequest listObjectsRequest; |
85 |
| - listObjectsRequest.SetBucket(bucketName); |
86 |
| - |
87 |
| - unsigned checkForObjectsCount = 0; |
88 |
| - static const int TIMEOUT_MAX = 20; |
89 |
| - while (checkForObjectsCount++ < TIMEOUT_MAX) { |
90 |
| - ListObjectsOutcome listObjectsOutcome = m_client->ListObjects(listObjectsRequest); |
91 |
| - AWS_ASSERT_SUCCESS(listObjectsOutcome); |
92 |
| - |
93 |
| - if (!listObjectsOutcome.GetResult().GetContents().empty()) { |
94 |
| - std::this_thread::sleep_for(std::chrono::seconds(5)); |
95 |
| - } else { |
96 |
| - break; |
97 |
| - } |
98 |
| - } |
99 |
| - } |
100 |
| - |
101 |
| - void DeleteBucket(const Aws::String& bucketName) { |
102 |
| - HeadBucketRequest headBucketRequest; |
103 |
| - headBucketRequest.SetBucket(bucketName); |
104 |
| - HeadBucketOutcome bucketOutcome = m_client->HeadBucket(headBucketRequest); |
105 |
| - |
106 |
| - if (bucketOutcome.IsSuccess()) { |
107 |
| - EmptyBucket(bucketName); |
108 |
| - WaitForBucketToEmpty(bucketName); |
109 |
| - |
110 |
| - DeleteBucketRequest deleteBucketRequest; |
111 |
| - deleteBucketRequest.SetBucket(bucketName); |
112 |
| - |
113 |
| - auto deleteBucketOutcome = |
114 |
| - CallOperationWithUnconditionalRetry(m_client.get(), &Aws::S3Crt::S3CrtClient::DeleteBucket, deleteBucketRequest); |
115 |
| - AWS_ASSERT_SUCCESS(deleteBucketOutcome); |
116 |
| - } |
117 |
| - } |
118 |
| - |
119 |
| - bool WaitForBucketToPropagate(const Aws::String& bucketName) { |
120 |
| - unsigned timeoutCount = 0; |
121 |
| - static const int TIMEOUT_MAX = 20; |
122 |
| - while (timeoutCount++ < TIMEOUT_MAX) { |
123 |
| - ListObjectsRequest listObjectsRequest; |
124 |
| - listObjectsRequest.SetBucket(bucketName); |
125 |
| - ListObjectsOutcome listObjectsOutcome = m_client->ListObjects(listObjectsRequest); |
126 |
| - if (listObjectsOutcome.IsSuccess()) { |
127 |
| - return true; |
128 |
| - } |
129 |
| - |
130 |
| - std::this_thread::sleep_for(std::chrono::seconds(10)); |
131 |
| - } |
132 |
| - |
133 |
| - return false; |
134 |
| - } |
135 |
| - |
136 |
| - void TagTestBucket(const Aws::String& bucketName) { |
137 |
| - ASSERT_TRUE(!bucketName.empty()); |
138 |
| - ASSERT_TRUE(m_client); |
139 |
| - |
140 |
| - PutBucketTaggingRequest taggingRequest; |
141 |
| - taggingRequest.SetBucket(bucketName); |
142 |
| - Tag tag; |
143 |
| - static const char* TEST_BUCKET_TAG = "IntegrationTestResource"; |
144 |
| - tag.SetKey(TEST_BUCKET_TAG); |
145 |
| - tag.SetValue(TEST_BUCKET_TAG); |
146 |
| - Tagging tagging; |
147 |
| - tagging.AddTagSet(tag); |
148 |
| - taggingRequest.SetTagging(tagging); |
149 |
| - |
150 |
| - auto taggingOutcome = CallOperationWithUnconditionalRetry(m_client.get(), &Aws::S3Crt::S3CrtClient::PutBucketTagging, taggingRequest); |
151 |
| - AWS_ASSERT_SUCCESS(taggingOutcome); |
152 |
| - } |
153 |
| - |
154 |
| - static Aws::String CalculateBucketName(const Aws::String& bucketPrefix) { return Aws::Testing::GetAwsResourcePrefix() + bucketPrefix; } |
155 |
| - |
156 |
| - static Aws::String randomString() { return StringUtils::ToLower(Aws::String(UUID::RandomUUID()).c_str()); } |
157 |
| - |
158 | 67 | std::shared_ptr<S3CrtClient> m_client;
|
159 | 68 | Aws::String m_bucketName;
|
160 | 69 | };
|
|
0 commit comments