diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-12-23 11:38:39 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-12-23 11:38:39 +0000 |
| commit | 1d0a52cfbb17d77eef8d89be7762203f7286e92f (patch) | |
| tree | ea6cf68094d5c7a058143348a551bb3664e19f77 /src/test/java | |
| parent | ac56c2e61c8d4c9af26d49f419b2193a798ae68f (diff) | |
Check type of string in config
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/config/BinConfigTests.java | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/test/java/org/shedlang/compiler/config/BinConfigTests.java b/src/test/java/org/shedlang/compiler/config/BinConfigTests.java index cbe8ee01..dc61f023 100644 --- a/src/test/java/org/shedlang/compiler/config/BinConfigTests.java +++ b/src/test/java/org/shedlang/compiler/config/BinConfigTests.java @@ -39,6 +39,31 @@ public class BinConfigTests { } @Test + public void whenBinConfigIsNotStringThenErrorIsThrown() { + var source = Sources.string(""" + [[shed.bins]] + name = "one" + main-namespace = "One" + + [[shed.bins]] + name = true + main-namespace = "Two" + """); + + var error = assertThrows( + ConfigError.class, + () -> ProjectConfig.fromToml(PROJECT_PATH, TomlTableWithSource.parse(source)) + ); + + assertThat(error.getMessage(), equalTo("Expected shed.bins[1].name to be a string, but was Boolean")); + assertThat(error.source().describe(), equalTo(""" + <string>:6:1 + name = true + ^""" + )); + } + + @Test public void whenBinConfigIsMissingMainNamespaceThenErrorIsThrown() { var source = Sources.string(""" [[shed.bins]] @@ -47,6 +72,7 @@ public class BinConfigTests { [[shed.bins]] name = "two" + main-namespace = true """); var error = assertThrows( @@ -54,10 +80,10 @@ public class BinConfigTests { () -> ProjectConfig.fromToml(PROJECT_PATH, TomlTableWithSource.parse(source)) ); - assertThat(error.getMessage(), equalTo("shed.bins[1] is missing main-namespace")); + assertThat(error.getMessage(), equalTo("Expected shed.bins[1].main-namespace to be a string, but was Boolean")); assertThat(error.source().describe(), equalTo(""" - <string>:5:1 - [[shed.bins]] + <string>:7:1 + main-namespace = true ^""" )); } |
