Skip to content

Commit

Permalink
Add unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
ennoruijters committed Sep 29, 2021
1 parent c25d75b commit 67808ca
Showing 1 changed file with 46 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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<Path> filter = entry -> {
String filename = entry.getFileName().toString();
return filename.startsWith("tmp_") || filename.endsWith(".sql");
};

// act
try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(base, filter))
{
// assert
assertDirectoryStream(dirStream, "file2.sql", "file4.sql", "tmp_file.txt");
}
}

@Test
void list999Paths()
throws IOException
Expand Down Expand Up @@ -146,21 +175,27 @@ private void assertNewDirectoryStream(Path base,
{
try (DirectoryStream<Path> dir = Files.newDirectoryStream(base))
{
assertNotNull(dir);
assertNotNull(dir.iterator());
assertTrue(dir.iterator().hasNext());
assertDirectoryStream(dir, files);
}
}

Set<String> filesNamesExpected = new HashSet<>(Arrays.asList(files));
Set<String> filesNamesActual = new HashSet<>();
private void assertDirectoryStream(DirectoryStream<Path> 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<String> filesNamesExpected = new HashSet<>(Arrays.asList(files));
Set<String> filesNamesActual = new HashSet<>();

assertEquals(filesNamesExpected, filesNamesActual);
for (Path path : dir)
{
String fileName = path.getFileName().toString();
filesNamesActual.add(fileName);
}

assertEquals(filesNamesExpected, filesNamesActual);
}

/**
Expand Down

0 comments on commit 67808ca

Please sign in to comment.