|
20 | 20 |
|
21 | 21 | import java.util.ArrayList;
|
22 | 22 | import java.util.List;
|
| 23 | +import org.apache.commons.lang3.RandomStringUtils; |
23 | 24 | import org.junit.AfterClass;
|
24 | 25 | import org.junit.BeforeClass;
|
25 | 26 | import org.junit.Test;
|
26 | 27 | import software.amazon.awssdk.core.sync.RequestBody;
|
27 | 28 | import software.amazon.awssdk.services.s3.model.BucketVersioningStatus;
|
| 29 | +import software.amazon.awssdk.services.s3.model.CompletedMultipartUpload; |
28 | 30 | import software.amazon.awssdk.services.s3.model.CopyObjectRequest;
|
29 | 31 | import software.amazon.awssdk.services.s3.model.DeleteObjectTaggingRequest;
|
30 | 32 | import software.amazon.awssdk.services.s3.model.GetObjectTaggingRequest;
|
|
33 | 35 | import software.amazon.awssdk.services.s3.model.PutObjectRequest;
|
34 | 36 | import software.amazon.awssdk.services.s3.model.Tag;
|
35 | 37 | import software.amazon.awssdk.services.s3.model.Tagging;
|
| 38 | +import software.amazon.awssdk.services.s3.model.UploadPartResponse; |
36 | 39 | import software.amazon.awssdk.services.s3.model.VersioningConfiguration;
|
37 | 40 |
|
38 | 41 | /**
|
@@ -95,10 +98,7 @@ public void putObject_WithTagging_Succeeds() {
|
95 | 98 |
|
96 | 99 | @Test
|
97 | 100 | public void getObjectTagging_Succeeds() {
|
98 |
| - List<Tag> tagSet = new ArrayList<>(); |
99 |
| - tagSet.add(Tag.builder().key("foo").value("1").build()); |
100 |
| - tagSet.add(Tag.builder().key("bar").value("2").build()); |
101 |
| - tagSet.add(Tag.builder().key("baz").value("3").build()); |
| 101 | + List<Tag> tagSet = tags(); |
102 | 102 |
|
103 | 103 | Tagging tags = Tagging.builder().tagSet(tagSet).build();
|
104 | 104 |
|
@@ -147,10 +147,7 @@ public void putObjectTagging_Succeeds_WithUrlEncodedTags() {
|
147 | 147 |
|
148 | 148 | @Test
|
149 | 149 | public void copyObject_Succeeds_WithNewTags() {
|
150 |
| - List<Tag> tagSet = new ArrayList<>(); |
151 |
| - tagSet.add(Tag.builder().key("foo").value("1").build()); |
152 |
| - tagSet.add(Tag.builder().key("bar").value("2").build()); |
153 |
| - tagSet.add(Tag.builder().key("baz").value("3").build()); |
| 150 | + List<Tag> tagSet = tags(); |
154 | 151 |
|
155 | 152 | Tagging tags = Tagging.builder().tagSet(tagSet).build();
|
156 | 153 |
|
@@ -183,12 +180,43 @@ public void copyObject_Succeeds_WithNewTags() {
|
183 | 180 | assertThat(getTaggingResult).containsExactlyInAnyOrder(tagsCopy.tagSet().toArray(new Tag[tagsCopy.tagSet().size()]));
|
184 | 181 | }
|
185 | 182 |
|
186 |
| - @Test |
187 |
| - public void testDeleteObjectTagging() { |
| 183 | + private List<Tag> tags() { |
188 | 184 | List<Tag> tagSet = new ArrayList<>();
|
189 | 185 | tagSet.add(Tag.builder().key("foo").value("1").build());
|
190 | 186 | tagSet.add(Tag.builder().key("bar").value("2").build());
|
191 | 187 | tagSet.add(Tag.builder().key("baz").value("3").build());
|
| 188 | + return tagSet; |
| 189 | + } |
| 190 | + |
| 191 | + @Test |
| 192 | + public void multipartUploadWithNewTags_shouldSucceed() { |
| 193 | + List<Tag> tagSet = tags(); |
| 194 | + |
| 195 | + Tagging tags = Tagging.builder().tagSet(tagSet).build(); |
| 196 | + |
| 197 | + String key = makeNewKey(); |
| 198 | + String uploadId = |
| 199 | + s3.createMultipartUpload(b -> b.tagging(tags).bucket(BUCKET).key(key)).uploadId(); |
| 200 | + |
| 201 | + UploadPartResponse uploadPartResponse = s3.uploadPart(b -> b.bucket(BUCKET).key(key).partNumber(1).uploadId(uploadId), |
| 202 | + RequestBody.fromString(RandomStringUtils.random(1000))); |
| 203 | + CompletedMultipartUpload parts = |
| 204 | + CompletedMultipartUpload.builder().parts(p -> p.partNumber(1).eTag(uploadPartResponse.eTag()).build()).build(); |
| 205 | + |
| 206 | + s3.completeMultipartUpload(b -> b.bucket(BUCKET).key(key).multipartUpload(parts).uploadId(uploadId).build()); |
| 207 | + |
| 208 | + List<Tag> getTaggingResult = s3.getObjectTagging(GetObjectTaggingRequest.builder() |
| 209 | + .bucket(BUCKET) |
| 210 | + .key(key) |
| 211 | + .build()) |
| 212 | + .tagSet(); |
| 213 | + |
| 214 | + assertThat(getTaggingResult).containsExactlyInAnyOrder(tags.tagSet().toArray(new Tag[0])); |
| 215 | + } |
| 216 | + |
| 217 | + @Test |
| 218 | + public void testDeleteObjectTagging() { |
| 219 | + List<Tag> tagSet = tags(); |
192 | 220 |
|
193 | 221 | Tagging tags = Tagging.builder().tagSet(tagSet).build();
|
194 | 222 |
|
|
0 commit comments