diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-03-24 13:10:17 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-03-24 13:10:17 +0000 |
| commit | 5741462601505907f25c5b26a2618adf077c05c6 (patch) | |
| tree | b47129a04e2af898a87fc438a249aa531cd1db30 /src/test/java | |
| parent | 8875e6fb9b190f3db252aaaed54f4763c24906ab (diff) | |
Handle project configs without bins or examples
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java b/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java new file mode 100644 index 00000000..9496a1e6 --- /dev/null +++ b/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java @@ -0,0 +1,53 @@ +package org.shedlang.compiler.config; + +import org.junit.jupiter.api.Test; +import org.shedlang.compiler.types.NamespaceName; + +import java.nio.file.Path; + +import static org.zwobble.precisely.AssertThat.assertThat; +import static org.zwobble.precisely.Matchers.*; + +public class ProjectConfigTests { + private static final Path PROJECT_PATH = Path.of("/projects/a"); + + @Test + public void canParseProjectConfigWithNoBins() { + var config = ProjectConfig.fromString(PROJECT_PATH, ""); + + assertThat(config.bins(), isSequence()); + } + + @Test + public void canParseProjectConfigWithBins() { + var config = ProjectConfig.fromString(PROJECT_PATH, """ + [[shed.bins]] + name = "one" + main-namespace = "One" + + [[shed.bins]] + name = "two" + main-namespace = "Two" + """); + + assertThat(config.bins(), isSequence( + instanceOf( + BinConfig.class, + has("name", x -> x.name(), equalTo("one")), + has("mainNamespace", x -> x.mainNamespace(), equalTo(NamespaceName.of("One"))) + ), + instanceOf( + BinConfig.class, + has("name", x -> x.name(), equalTo("two")), + has("mainNamespace", x -> x.mainNamespace(), equalTo(NamespaceName.of("Two"))) + ) + )); + } + + @Test + public void canParseProjectConfigWithNoExamples() { + var config = ProjectConfig.fromString(PROJECT_PATH, ""); + + assertThat(config.examples(), isSequence()); + } +} |
