aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-09-16 15:42:53 +0100
committerMichael Williamson <mike@zwobble.org>2023-09-16 15:42:53 +0100
commit4fcb9922d9d6369529b398b09d1021cffeccfd5c (patch)
tree5a61d1b5db77a0eccfde719382be8ed21f544aae /src/test/java
parenta06341080c61372bb58fba7f1aa29caa863b7ee9 (diff)
Handle invalid field name
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java16
1 files changed, 16 insertions, 0 deletions
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"));
+ }
}