|
50 | 50 | #include <aws/s3-crt/model/PutBucketVersioningRequest.h> |
51 | 51 | #include <aws/s3-crt/model/VersioningConfiguration.h> |
52 | 52 | #include <aws/s3-crt/model/BucketVersioningStatus.h> |
| 53 | +#include <aws/s3-crt/model/ListObjectVersionsRequest.h> |
53 | 54 | #include <aws/s3-crt/ClientConfiguration.h> |
54 | 55 | #include <aws/testing/ProxyConfig.h> |
55 | 56 | #include <aws/testing/platform/PlatformTesting.h> |
@@ -92,6 +93,7 @@ namespace |
92 | 93 | static std::string BASE_EVENT_STREAM_ERRORS_IN_EVENT_TEST_BUCKET_NAME = "errorsinevent"; |
93 | 94 | static std::string BASE_CHECKSUMS_BUCKET_NAME = "checksums-crt"; |
94 | 95 | static std::string BASE_CRT_CREDENTIALS_TEST_BUCKET_NAME = "crt-credentials-test"; |
| 96 | + static std::string BASE_VERSIONED_COPY_BUCKET_NAME = "versionedcopytest"; |
95 | 97 | static const char* ALLOCATION_TAG = "BucketAndObjectOperationTest"; |
96 | 98 | static const char* TEST_OBJ_KEY = "TestObjectKey"; |
97 | 99 | static const char* TEST_NOT_MODIFIED_OBJ_KEY = "TestNotModifiedObjectKey"; |
@@ -132,7 +134,8 @@ namespace |
132 | 134 | std::ref(BASE_EVENT_STREAM_LARGE_FILE_TEST_BUCKET_NAME), |
133 | 135 | std::ref(BASE_EVENT_STREAM_ERRORS_IN_EVENT_TEST_BUCKET_NAME), |
134 | 136 | std::ref(BASE_CHECKSUMS_BUCKET_NAME), |
135 | | - std::ref(BASE_CRT_CREDENTIALS_TEST_BUCKET_NAME) |
| 137 | + std::ref(BASE_CRT_CREDENTIALS_TEST_BUCKET_NAME), |
| 138 | + std::ref(BASE_VERSIONED_COPY_BUCKET_NAME) |
136 | 139 | }; |
137 | 140 |
|
138 | 141 | for (auto& testBucketName : TEST_BUCKETS) |
@@ -1082,7 +1085,7 @@ namespace |
1082 | 1085 |
|
1083 | 1086 | TEST_F(BucketAndObjectOperationTest, TestMultipartCopyOnVersionedBucketDoesNotRequireGetObjectVersion) |
1084 | 1087 | { |
1085 | | - Aws::String fullBucketName = CalculateBucketName(BASE_PUT_MULTIPART_BUCKET_NAME.c_str()); |
| 1088 | + Aws::String fullBucketName = CalculateBucketName(BASE_VERSIONED_COPY_BUCKET_NAME.c_str()); |
1086 | 1089 | SCOPED_TRACE(Aws::String("FullBucketName ") + fullBucketName); |
1087 | 1090 | CreateBucketRequest createBucketRequest; |
1088 | 1091 | createBucketRequest.SetBucket(fullBucketName); |
@@ -1126,6 +1129,26 @@ namespace |
1126 | 1129 | .WithCopySource(fullBucketName + "/" + sourceKey); |
1127 | 1130 | auto copyOutcome = Client->CopyObject(copyRequest); |
1128 | 1131 | AWS_ASSERT_SUCCESS(copyOutcome); |
| 1132 | + |
| 1133 | + // Clean up: delete all object versions so the bucket can be deleted |
| 1134 | + ListObjectVersionsRequest listVersionsRequest; |
| 1135 | + listVersionsRequest.SetBucket(fullBucketName); |
| 1136 | + auto listVersionsOutcome = Client->ListObjectVersions(listVersionsRequest); |
| 1137 | + if (listVersionsOutcome.IsSuccess()) |
| 1138 | + { |
| 1139 | + for (const auto& version : listVersionsOutcome.GetResult().GetVersions()) |
| 1140 | + { |
| 1141 | + DeleteObjectRequest deleteRequest; |
| 1142 | + deleteRequest.SetBucket(fullBucketName); |
| 1143 | + deleteRequest.SetKey(version.GetKey()); |
| 1144 | + deleteRequest.SetVersionId(version.GetVersionId()); |
| 1145 | + Client->DeleteObject(deleteRequest); |
| 1146 | + } |
| 1147 | + } |
| 1148 | + |
| 1149 | + DeleteBucketRequest deleteBucketRequest; |
| 1150 | + deleteBucketRequest.SetBucket(fullBucketName); |
| 1151 | + Client->DeleteBucket(deleteBucketRequest); |
1129 | 1152 | } |
1130 | 1153 |
|
1131 | 1154 | TEST_F(BucketAndObjectOperationTest, TestObjectOperationWithEventStream) |
|
0 commit comments