From 5741462601505907f25c5b26a2618adf077c05c6 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 24 Mar 2024 13:10:17 +0000 Subject: Handle project configs without bins or examples --- .../compiler/config/ProjectConfigTests.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java (limited to 'src/test/java') 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()); + } +} -- cgit v1.2.3