aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java b/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java
index fba6d0e4..89283ab9 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java
@@ -4,6 +4,7 @@ import org.junit.jupiter.api.Test;
import org.shedlang.compiler.ast.untyped.Untyped;
import org.shedlang.compiler.ast.untyped.UntypedNamespaceNode;
import org.shedlang.compiler.typechecker.errors.CircularNamespaceDependencyError;
+import org.shedlang.compiler.typechecker.errors.UnknownNamespaceError;
import org.shedlang.compiler.types.NamespaceName;
import org.zwobble.precisely.Matcher;
@@ -158,6 +159,20 @@ public class NamespaceDependencyLineariserTests {
));
}
+ @Test
+ public void whenDependencyIsUnrecognisedThenErrorIsThrown() {
+ var namespaces = List.of(
+ namespaceNode("A", List.of("B"))
+ );
+
+ var error = assertThrows(
+ UnknownNamespaceError.class,
+ () -> NamespaceDependencyLineariser.orderNamespaces(namespaces)
+ );
+
+ assertThat(error.unknownNamespaceName(), equalTo(NamespaceName.of("B")));
+ }
+
private static UntypedNamespaceNode namespaceNode(
String namespaceName,
List<String> dependencies