aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-03-24 13:10:17 +0000
committerMichael Williamson <mike@zwobble.org>2024-03-24 13:10:17 +0000
commit5741462601505907f25c5b26a2618adf077c05c6 (patch)
treeb47129a04e2af898a87fc438a249aa531cd1db30 /src/test/java
parent8875e6fb9b190f3db252aaaed54f4763c24906ab (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.java53
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());
+ }
+}