From 67808cad5e06a58793f771d3c1cca5a70b58d256 Mon Sep 17 00:00:00 2001 From: Enno Ruijters Date: Wed, 29 Sep 2021 10:16:01 +0200 Subject: [PATCH] Add unit test --- .../NewDirectoryStreamTest.java | 57 +++++++++++++++---- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/NewDirectoryStreamTest.java b/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/NewDirectoryStreamTest.java index 5ee2073f..c75db741 100644 --- a/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/NewDirectoryStreamTest.java +++ b/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/NewDirectoryStreamTest.java @@ -104,6 +104,35 @@ void removeIteratorStreamDirectoryReader() } } + @Test + public void directoryStreamWithFilter() + throws IOException + { + // fixtures + S3ClientMock client = S3MockFactory.getS3ClientMock(); + client.bucket("bucketA") + .dir("dir1") // + .file("dir/file1.txt", "content".getBytes()) // + .file("dir/file2.sql", "content".getBytes()) // + .file("dir/file3.txt", "content".getBytes()) // + .file("dir/file4.sql", "content".getBytes()) // + .file("dir/tmp_file.txt", "content".getBytes()); + + // act + Path base = createNewS3FileSystem().getPath("/bucketA", "dir"); + DirectoryStream.Filter filter = entry -> { + String filename = entry.getFileName().toString(); + return filename.startsWith("tmp_") || filename.endsWith(".sql"); + }; + + // act + try (DirectoryStream dirStream = Files.newDirectoryStream(base, filter)) + { + // assert + assertDirectoryStream(dirStream, "file2.sql", "file4.sql", "tmp_file.txt"); + } + } + @Test void list999Paths() throws IOException @@ -146,21 +175,27 @@ private void assertNewDirectoryStream(Path base, { try (DirectoryStream dir = Files.newDirectoryStream(base)) { - assertNotNull(dir); - assertNotNull(dir.iterator()); - assertTrue(dir.iterator().hasNext()); + assertDirectoryStream(dir, files); + } + } - Set filesNamesExpected = new HashSet<>(Arrays.asList(files)); - Set filesNamesActual = new HashSet<>(); + private void assertDirectoryStream(DirectoryStream dir, + final String... files) + { + assertNotNull(dir); + assertNotNull(dir.iterator()); + assertTrue(dir.iterator().hasNext()); - for (Path path : dir) - { - String fileName = path.getFileName().toString(); - filesNamesActual.add(fileName); - } + Set filesNamesExpected = new HashSet<>(Arrays.asList(files)); + Set filesNamesActual = new HashSet<>(); - assertEquals(filesNamesExpected, filesNamesActual); + for (Path path : dir) + { + String fileName = path.getFileName().toString(); + filesNamesActual.add(fileName); } + + assertEquals(filesNamesExpected, filesNamesActual); } /**