|
18 | 18 | import static com.google.cloud.storage.ByteSizeConstants._2MiB; |
19 | 19 | import static com.google.common.truth.Truth.assertThat; |
20 | 20 |
|
| 21 | +import com.google.cloud.storage.Storage.BlobField; |
| 22 | +import com.google.cloud.storage.Storage.BlobGetOption; |
21 | 23 | import com.google.cloud.storage.it.runner.StorageITRunner; |
22 | 24 | import com.google.cloud.storage.it.runner.annotations.Backend; |
23 | 25 | import com.google.cloud.storage.it.runner.annotations.Inject; |
@@ -119,4 +121,36 @@ public void testUploadFileUsingAppendable() throws Exception { |
119 | 121 | } |
120 | 122 | } |
121 | 123 | } |
| 124 | + |
| 125 | + @Test |
| 126 | + public void finalizeAfterCloseWorks() throws Exception { |
| 127 | + BlobId bid = BlobId.of(bucket.getName(), generator.randomObjectName()); |
| 128 | + |
| 129 | + AppendableBlobUpload appendable = |
| 130 | + storage.appendableBlobUpload(BlobInfo.newBuilder(bid).build(), 1024); |
| 131 | + appendable.write(DataGenerator.base64Characters().genByteBuffer(3587)); |
| 132 | + |
| 133 | + appendable.close(); |
| 134 | + BlobInfo bi = appendable.finalizeUpload(); |
| 135 | + assertThat(bi.getSize()).isEqualTo(3587); |
| 136 | + } |
| 137 | + |
| 138 | + @Test |
| 139 | + public void takeoverJustToFinalizeWorks() throws Exception { |
| 140 | + BlobId bid = BlobId.of(bucket.getName(), generator.randomObjectName()); |
| 141 | + |
| 142 | + AppendableBlobUpload upload = storage.appendableBlobUpload(BlobInfo.newBuilder(bid).build(), 5); |
| 143 | + |
| 144 | + upload.write(DataGenerator.base64Characters().genByteBuffer(20)); |
| 145 | + upload.close(); |
| 146 | + |
| 147 | + Blob blob = |
| 148 | + storage.get( |
| 149 | + bid, BlobGetOption.fields(BlobField.BUCKET, BlobField.NAME, BlobField.GENERATION)); |
| 150 | + |
| 151 | + AppendableBlobUpload takeOver = |
| 152 | + storage.appendableBlobUpload(BlobInfo.newBuilder(blob.getBlobId()).build(), 5); |
| 153 | + BlobInfo i = takeOver.finalizeUpload(); |
| 154 | + assertThat(i.getSize()).isEqualTo(20); |
| 155 | + } |
122 | 156 | } |
0 commit comments