diff options
Diffstat (limited to 'src/test/java/org/shedlang/compiler/SourceFilesTests.java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/SourceFilesTests.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/SourceFilesTests.java b/src/test/java/org/shedlang/compiler/SourceFilesTests.java new file mode 100644 index 00000000..d904d057 --- /dev/null +++ b/src/test/java/org/shedlang/compiler/SourceFilesTests.java @@ -0,0 +1,57 @@ +package org.shedlang.compiler; + +import org.junit.jupiter.api.Test; +import org.shedlang.compiler.types.NamespaceName; + +import java.io.IOException; +import java.nio.file.Files; + +import static org.shedlang.compiler.TemporaryFiles.createTemporaryTestDirectory; +import static org.zwobble.precisely.AssertThat.assertThat; +import static org.zwobble.precisely.Matchers.*; + +public class SourceFilesTests { + @Test + public void whenDirectoryIsEmptyThenNoSourceFilesAreFound() throws IOException { + var sourceDirectory = createTemporaryTestDirectory("SourceFilesTests"); + + var sourceFiles = SourceFiles.collectSourceFiles(sourceDirectory); + + assertThat(sourceFiles, containsExactly()); + } + + @Test + public void whenDirectoryContainsFileWithShedExtensionThenSourceFileIsFound() throws IOException { + var sourceDirectory = createTemporaryTestDirectory("SourceFilesTests"); + Files.createFile(sourceDirectory.resolve("One.shed")); + + var sourceFiles = SourceFiles.collectSourceFiles(sourceDirectory); + + assertThat(sourceFiles, containsExactly( + allOf( + has("path", x -> x.path(), equalTo(sourceDirectory.resolve("One.shed"))), + has("namespaceName", x -> x.namespaceName(), equalTo(NamespaceName.of("One"))) + ) + )); + } + + @Test + public void whenDirectoryContainsFileWithNonShedExtensionThenNoSourceFileIsFound() throws IOException { + var sourceDirectory = createTemporaryTestDirectory("SourceFilesTests"); + Files.createFile(sourceDirectory.resolve("One.she")); + + var sourceFiles = SourceFiles.collectSourceFiles(sourceDirectory); + + assertThat(sourceFiles, containsExactly()); + } + + @Test + public void whenFileHasMultipleThenExtensionsThenFileIsNotTreatedAsSourceFile() throws IOException { + var sourceDirectory = createTemporaryTestDirectory("SourceFilesTests"); + Files.createFile(sourceDirectory.resolve("One.Two.shed")); + + var sourceFiles = SourceFiles.collectSourceFiles(sourceDirectory); + + assertThat(sourceFiles, containsExactly()); + } +} |
