diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-12-23 09:41:01 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-12-23 09:41:01 +0000 |
| commit | c0fb45c014d53d41f29ca47c4ea57f368e176182 (patch) | |
| tree | 3c45eb6e9379b14116b567b2d6696e205e43e6e8 /src/test/java | |
| parent | 3b2351332b1f8941caba89caac6add07aad11e3c (diff) | |
Create separate TomlSyntaxConfigError
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java | 32 |
1 files changed, 32 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 index fe3bc78f..cedf2207 100644 --- a/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java +++ b/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java @@ -1,10 +1,12 @@ package org.shedlang.compiler.config; import org.junit.jupiter.api.Test; +import org.shedlang.compiler.config.errors.TomlSyntaxConfigError; import org.shedlang.compiler.types.NamespaceName; import java.nio.file.Path; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.*; @@ -12,6 +14,36 @@ public class ProjectConfigTests { private static final Path PROJECT_PATH = Path.of("/projects/a"); @Test + public void whenProjectConfigHasSyntaxErrorsOnFirstLineThenErrorIsThrown() { + var error = assertThrows( + TomlSyntaxConfigError.class, + () -> ProjectConfig.fromString(PROJECT_PATH, "[x] ]x") + ); + + assertThat(error.getMessage(), equalTo("Unexpected ']', expected a newline or end-of-input")); + assertThat(error.source().describe(), equalTo(""" + <string>:1:5 + [x] ]x + ^""" + )); + } + + @Test + public void whenProjectConfigHasSyntaxErrorsOnNonFirstLineThenErrorIsThrown() { + var error = assertThrows( + TomlSyntaxConfigError.class, + () -> ProjectConfig.fromString(PROJECT_PATH, "[a]\n[x] ]x") + ); + + assertThat(error.getMessage(), equalTo("Unexpected ']', expected a newline or end-of-input")); + assertThat(error.source().describe(), equalTo(""" + <string>:2:5 + [x] ]x + ^""" + )); + } + + @Test public void canParseProjectConfigWithNoBins() { var config = ProjectConfig.fromString(PROJECT_PATH, ""); |
