Skip to content

Commit 21f606e

Browse files
authored
fix: FakeStorageRpc#list to filtering the files by bucket and prefix (#208)
* fix: list method of FakeStorageRpc * fix: list method of FakeStorageRpc
1 parent 33fdc31 commit 21f606e

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ public Tuple<String, Iterable<StorageObject>> list(String bucket, Map<Option, ?>
151151
continue;
152152
}
153153
so.setSize(size(so));
154-
values.add(so);
154+
if (so.getBucket().equals(bucket)) {
155+
values.add(so);
156+
}
155157
}
156158
values.addAll(folders.values());
157159

google-cloud-nio/src/test/java/com/google/cloud/storage/contrib/nio/it/ITGcsNio.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import static org.junit.Assert.assertSame;
2727

2828
import com.google.api.client.http.HttpResponseException;
29+
import com.google.cloud.storage.Blob;
2930
import com.google.cloud.storage.BlobInfo;
3031
import com.google.cloud.storage.Bucket;
3132
import com.google.cloud.storage.BucketInfo;
@@ -37,8 +38,10 @@
3738
import com.google.cloud.storage.contrib.nio.CloudStorageFileSystem;
3839
import com.google.cloud.storage.contrib.nio.CloudStorageFileSystemProvider;
3940
import com.google.cloud.storage.contrib.nio.CloudStoragePath;
41+
import com.google.cloud.storage.contrib.nio.testing.LocalStorageHelper;
4042
import com.google.cloud.storage.testing.RemoteStorageHelper;
4143
import com.google.common.collect.ImmutableList;
44+
import com.google.common.collect.Lists;
4245
import com.google.common.collect.Sets;
4346
import java.io.ByteArrayOutputStream;
4447
import java.io.EOFException;
@@ -62,6 +65,7 @@
6265
import java.util.Arrays;
6366
import java.util.List;
6467
import java.util.Random;
68+
import java.util.UUID;
6569
import java.util.concurrent.ExecutionException;
6670
import java.util.concurrent.TimeUnit;
6771
import java.util.logging.Level;
@@ -1074,6 +1078,32 @@ public void testCopyWithDifferentProvider() throws IOException {
10741078
assertNotEquals(sourceFileSystem.config(), targetFileSystem.config());
10751079
}
10761080

1081+
@Test
1082+
public void testListObject() throws IOException {
1083+
String firstBucket = "first-bucket-" + UUID.randomUUID().toString();
1084+
String secondBucket = "second-bucket" + UUID.randomUUID().toString();
1085+
Storage localStorageService = LocalStorageHelper.customOptions(true).getService();
1086+
fillFile(localStorageService, firstBucket, "object", SML_SIZE);
1087+
fillFile(localStorageService, firstBucket, "test-object", SML_SIZE);
1088+
fillFile(localStorageService, secondBucket, "test-object", SML_SIZE);
1089+
1090+
// Listing objects from first bucket without prefix.
1091+
List<Blob> objects = Lists.newArrayList(localStorageService.list(firstBucket).getValues());
1092+
assertThat(objects.size()).isEqualTo(2);
1093+
1094+
// Listing objects from first bucket with prefix.
1095+
objects =
1096+
Lists.newArrayList(
1097+
localStorageService
1098+
.list(firstBucket, Storage.BlobListOption.prefix("test-"))
1099+
.getValues());
1100+
assertThat(objects.size()).isEqualTo(1);
1101+
1102+
// Listing objects from second bucket.
1103+
objects = Lists.newArrayList(localStorageService.list(secondBucket).getValues());
1104+
assertThat(objects.size()).isEqualTo(1);
1105+
}
1106+
10771107
private CloudStorageFileSystem getTestBucket() throws IOException {
10781108
// in typical usage we use the single-argument version of forBucket
10791109
// and rely on the user being logged into their project with the

0 commit comments

Comments
 (0)