Skip to content

Commit 437385d

Browse files
authored
test: Success and failure combined tests (#2066)
1 parent c19049d commit 437385d

File tree

1 file changed

+97
-33
lines changed

1 file changed

+97
-33
lines changed

google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITTransferManagerTest.java

Lines changed: 97 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,67 @@ public void uploadFilesWithOpts() throws Exception {
156156
}
157157
}
158158

159+
@Test
160+
public void uploadFilesOneFailure() throws Exception {
161+
TransferManagerConfig config =
162+
TransferManagerConfigTestingInstances.defaults(storage.getOptions());
163+
try (TransferManager transferManager = config.getService();
164+
TmpFile tmpFile = DataGenerator.base64Characters().tempFile(baseDir, objectContentSize);
165+
TmpFile tmpFile1 = DataGenerator.base64Characters().tempFile(baseDir, objectContentSize);
166+
TmpFile tmpFile2 = DataGenerator.base64Characters().tempFile(baseDir, objectContentSize)) {
167+
List<Path> files =
168+
ImmutableList.of(
169+
tmpFile.getPath(),
170+
tmpFile1.getPath(),
171+
tmpFile2.getPath(),
172+
Paths.get("this-file-does-not-exist.txt"));
173+
String bucketName = bucket.getName();
174+
ParallelUploadConfig parallelUploadConfig =
175+
ParallelUploadConfig.newBuilder().setBucketName(bucketName).build();
176+
UploadJob job = transferManager.uploadFiles(files, parallelUploadConfig);
177+
List<UploadResult> uploadResults = job.getUploadResults();
178+
assertThat(uploadResults).hasSize(4);
179+
assertThat(
180+
uploadResults.stream()
181+
.filter(x -> x.getStatus() == TransferStatus.FAILED_TO_START)
182+
.collect(Collectors.toList()))
183+
.hasSize(1);
184+
}
185+
}
186+
187+
@Test
188+
public void uploadNonexistentBucket() throws Exception {
189+
TransferManagerConfig config =
190+
TransferManagerConfigTestingInstances.defaults(storage.getOptions()).toBuilder().build();
191+
String bucketName = bucket.getName() + "-does-not-exist";
192+
try (TransferManager transferManager = config.getService();
193+
TmpFile tmpFile = DataGenerator.base64Characters().tempFile(baseDir, objectContentSize)) {
194+
List<Path> files = ImmutableList.of(tmpFile.getPath());
195+
ParallelUploadConfig parallelUploadConfig =
196+
ParallelUploadConfig.newBuilder().setBucketName(bucketName).build();
197+
UploadJob job = transferManager.uploadFiles(files, parallelUploadConfig);
198+
List<UploadResult> uploadResults = job.getUploadResults();
199+
assertThat(uploadResults.get(0).getStatus()).isEqualTo(TransferStatus.FAILED_TO_START);
200+
assertThat(uploadResults.get(0).getException()).isInstanceOf(StorageException.class);
201+
}
202+
}
203+
204+
@Test
205+
public void uploadNonexistentFile() throws Exception {
206+
TransferManagerConfig config =
207+
TransferManagerConfigTestingInstances.defaults(storage.getOptions()).toBuilder().build();
208+
String bucketName = bucket.getName();
209+
try (TransferManager transferManager = config.getService()) {
210+
List<Path> files = ImmutableList.of(Paths.get("this-file-does-not-exist.txt"));
211+
ParallelUploadConfig parallelUploadConfig =
212+
ParallelUploadConfig.newBuilder().setBucketName(bucketName).build();
213+
UploadJob job = transferManager.uploadFiles(files, parallelUploadConfig);
214+
List<UploadResult> uploadResults = job.getUploadResults();
215+
assertThat(uploadResults.get(0).getStatus()).isEqualTo(TransferStatus.FAILED_TO_START);
216+
assertThat(uploadResults.get(0).getException()).isInstanceOf(NoSuchFileException.class);
217+
}
218+
}
219+
159220
@Test
160221
public void downloadBlobs() throws Exception {
161222
TransferManagerConfig config =
@@ -220,39 +281,6 @@ public void downloadBlobsAllowChunked() throws Exception {
220281
}
221282
}
222283

223-
@Test
224-
public void uploadNonexistentBucket() throws Exception {
225-
TransferManagerConfig config =
226-
TransferManagerConfigTestingInstances.defaults(storage.getOptions()).toBuilder().build();
227-
String bucketName = bucket.getName() + "-does-not-exist";
228-
try (TransferManager transferManager = config.getService();
229-
TmpFile tmpFile = DataGenerator.base64Characters().tempFile(baseDir, objectContentSize)) {
230-
List<Path> files = ImmutableList.of(tmpFile.getPath());
231-
ParallelUploadConfig parallelUploadConfig =
232-
ParallelUploadConfig.newBuilder().setBucketName(bucketName).build();
233-
UploadJob job = transferManager.uploadFiles(files, parallelUploadConfig);
234-
List<UploadResult> uploadResults = job.getUploadResults();
235-
assertThat(uploadResults.get(0).getStatus()).isEqualTo(TransferStatus.FAILED_TO_START);
236-
assertThat(uploadResults.get(0).getException()).isInstanceOf(StorageException.class);
237-
}
238-
}
239-
240-
@Test
241-
public void uploadNonexistentFile() throws Exception {
242-
TransferManagerConfig config =
243-
TransferManagerConfigTestingInstances.defaults(storage.getOptions()).toBuilder().build();
244-
String bucketName = bucket.getName();
245-
try (TransferManager transferManager = config.getService()) {
246-
List<Path> files = ImmutableList.of(Paths.get("this-file-does-not-exist.txt"));
247-
ParallelUploadConfig parallelUploadConfig =
248-
ParallelUploadConfig.newBuilder().setBucketName(bucketName).build();
249-
UploadJob job = transferManager.uploadFiles(files, parallelUploadConfig);
250-
List<UploadResult> uploadResults = job.getUploadResults();
251-
assertThat(uploadResults.get(0).getStatus()).isEqualTo(TransferStatus.FAILED_TO_START);
252-
assertThat(uploadResults.get(0).getException()).isInstanceOf(NoSuchFileException.class);
253-
}
254-
}
255-
256284
@Test
257285
public void downloadNonexistentBucket() throws Exception {
258286
TransferManagerConfig config =
@@ -326,6 +354,42 @@ public void downloadBlobsPreconditionFailure() throws Exception {
326354
}
327355
}
328356

357+
@Test
358+
public void downloadBlobsOneFailure() throws Exception {
359+
TransferManagerConfig config =
360+
TransferManagerConfigTestingInstances.defaults(storage.getOptions());
361+
try (TransferManager transferManager = config.getService()) {
362+
String bucketName = bucket.getName();
363+
ParallelDownloadConfig parallelDownloadConfig =
364+
ParallelDownloadConfig.newBuilder()
365+
.setBucketName(bucketName)
366+
.setDownloadDirectory(baseDir)
367+
.build();
368+
List<BlobInfo> downloadBlobs = blobs;
369+
BlobInfo nonexistentBlob =
370+
BlobInfo.newBuilder(
371+
BlobId.of(
372+
bucket.getName(), String.format("%s/src", generator.randomObjectName())))
373+
.build();
374+
downloadBlobs.add(nonexistentBlob);
375+
DownloadJob job = transferManager.downloadBlobs(blobs, parallelDownloadConfig);
376+
List<DownloadResult> downloadResults = job.getDownloadResults();
377+
try {
378+
assertThat(downloadResults).hasSize(4);
379+
assertThat(
380+
downloadResults.stream()
381+
.filter(res -> res.getStatus() == TransferStatus.FAILED_TO_START)
382+
.collect(Collectors.toList()))
383+
.hasSize(1);
384+
} finally {
385+
cleanUpFiles(
386+
downloadResults.stream()
387+
.filter(res -> res.getStatus() == TransferStatus.SUCCESS)
388+
.collect(Collectors.toList()));
389+
}
390+
}
391+
}
392+
329393
private void cleanUpFiles(List<DownloadResult> results) throws IOException {
330394
// Cleanup downloaded blobs and the parent directory
331395
for (DownloadResult res : results) {

0 commit comments

Comments
 (0)