From 4fcb9922d9d6369529b398b09d1021cffeccfd5c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 16 Sep 2023 15:42:53 +0100 Subject: Handle invalid field name --- .../shedlang/compiler/types/NamespaceTypeInfoTests.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/test/java/org') diff --git a/src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java b/src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java index 0aba6f1d..c22f312a 100644 --- a/src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java +++ b/src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java @@ -5,6 +5,7 @@ import org.shedlang.compiler.util.P; import java.util.Map; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.equalTo; @@ -32,4 +33,19 @@ public class NamespaceTypeInfoTests { assertThat(result, equalTo(1)); } + + @Test + public void whenFieldDoesNotExistThenFieldIndexThrowsError() { + var namespaceTypeInfo = new NamespaceTypeInfo(P.orderedMap( + Map.entry("a", Types.INT), + Map.entry("b", Types.STRING) + )); + + var error = assertThrows( + NoSuchFieldInternalError.class, + () -> namespaceTypeInfo.fieldIndex("c") + ); + + assertThat(error.fieldName(), equalTo("c")); + } } -- cgit v1.2.3