From 46f34dd64000d7bcf268fa44471ff439b247f51a Mon Sep 17 00:00:00 2001 From: athakor Date: Wed, 9 Sep 2020 11:49:20 +0530 Subject: [PATCH 1/2] fix: list method of FakeStorageRpc --- .../contrib/nio/testing/FakeStorageRpc.java | 4 ++- .../storage/contrib/nio/it/ITGcsNio.java | 29 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java b/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java index f738b52e..bf6879ba 100644 --- a/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java +++ b/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java @@ -151,7 +151,9 @@ public Tuple> list(String bucket, Map continue; } so.setSize(size(so)); - values.add(so); + if (so.getBucket().equals(bucket)) { + values.add(so); + } } values.addAll(folders.values()); diff --git a/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java b/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java index d44d2705..3219ca8e 100644 --- a/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java +++ b/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java @@ -37,8 +37,10 @@ import com.google.cloud.storage.contrib.nio.CloudStorageFileSystem; import com.google.cloud.storage.contrib.nio.CloudStorageFileSystemProvider; import com.google.cloud.storage.contrib.nio.CloudStoragePath; +import com.google.cloud.storage.contrib.nio.testing.LocalStorageHelper; import com.google.cloud.storage.testing.RemoteStorageHelper; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; import java.io.ByteArrayOutputStream; import java.io.EOFException; @@ -62,6 +64,7 @@ import java.util.Arrays; import java.util.List; import java.util.Random; +import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.logging.Level; @@ -1074,6 +1077,32 @@ public void testCopyWithDifferentProvider() throws IOException { assertNotEquals(sourceFileSystem.config(), targetFileSystem.config()); } + @Test + public void testListObject() throws IOException { + String firstBucket = "first-bucket-" + UUID.randomUUID().toString(); + String secondBucket = "second-bucket" + UUID.randomUUID().toString(); + Storage localStorageService = LocalStorageHelper.customOptions(true).getService(); + fillFile(localStorageService, firstBucket, "object", SML_SIZE); + fillFile(localStorageService, firstBucket, "test-object", SML_SIZE); + fillFile(localStorageService, secondBucket, "test-object", SML_SIZE); + + // Listing objects from first bucket without prefix. + List objects = Lists.newArrayList(localStorageService.list(firstBucket).getValues()); + assertThat(objects.size()).isEqualTo(2); + + // Listing objects from first bucket with prefix. + objects = + Lists.newArrayList( + localStorageService + .list(firstBucket, Storage.BlobListOption.prefix("test-")) + .getValues()); + assertThat(objects.size()).isEqualTo(1); + + // Listing objects from second bucket. + objects = Lists.newArrayList(localStorageService.list(secondBucket)); + assertThat(objects.size()).isEqualTo(1); + } + private CloudStorageFileSystem getTestBucket() throws IOException { // in typical usage we use the single-argument version of forBucket // and rely on the user being logged into their project with the From 3e218ba263b601d397778e31112dc7fccb0b8a3a Mon Sep 17 00:00:00 2001 From: athakor Date: Wed, 9 Sep 2020 12:16:34 +0530 Subject: [PATCH 2/2] fix: list method of FakeStorageRpc --- .../com/google/cloud/storage/contrib/nio/it/ITGcsNio.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java b/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java index 3219ca8e..2df78569 100644 --- a/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java +++ b/google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java @@ -26,6 +26,7 @@ import static org.junit.Assert.assertSame; import com.google.api.client.http.HttpResponseException; +import com.google.cloud.storage.Blob; import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Bucket; import com.google.cloud.storage.BucketInfo; @@ -1087,7 +1088,7 @@ public void testListObject() throws IOException { fillFile(localStorageService, secondBucket, "test-object", SML_SIZE); // Listing objects from first bucket without prefix. - List objects = Lists.newArrayList(localStorageService.list(firstBucket).getValues()); + List objects = Lists.newArrayList(localStorageService.list(firstBucket).getValues()); assertThat(objects.size()).isEqualTo(2); // Listing objects from first bucket with prefix. @@ -1099,7 +1100,7 @@ public void testListObject() throws IOException { assertThat(objects.size()).isEqualTo(1); // Listing objects from second bucket. - objects = Lists.newArrayList(localStorageService.list(secondBucket)); + objects = Lists.newArrayList(localStorageService.list(secondBucket).getValues()); assertThat(objects.size()).isEqualTo(1); }