aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/shedlang/compiler/parser
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-20 17:51:33 +0100
committerMichael Williamson <mike@zwobble.org>2023-10-20 17:51:33 +0100
commitc57ca9e4d30e07d2ff0ba2f113e905a3c3794c75 (patch)
tree0ad284e2ac442edd68aa32e171f84a1dcfc2ec8c /src/test/java/org/shedlang/compiler/parser
parentd2df851ca20b0ec02cb3450c861288d65d45f165 (diff)
Parse imports in namespace
Diffstat (limited to 'src/test/java/org/shedlang/compiler/parser')
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java b/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java
index 9c14e5b4..4f0b81be 100644
--- a/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java
+++ b/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java
@@ -5,6 +5,7 @@ import org.shedlang.compiler.ast.untyped.UntypedNamespaceNode;
import org.shedlang.compiler.types.NamespaceName;
import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.isUntypedFunctionDefinitionNode;
+import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.isUntypedImportNode;
import static org.shedlang.compiler.parser.ParserTesting.parseString;
import static org.zwobble.precisely.AssertThat.assertThat;
import static org.zwobble.precisely.Matchers.*;
@@ -49,4 +50,24 @@ public class ParserNamespaceTests {
))
));
}
+
+ @Test
+ public void canParseNamespaceWithImports() {
+ var source = """
+ import One;
+ import Two/Three;""";
+
+ var node = parseString(
+ source,
+ tokens -> Parser.parseNamespace(tokens, NamespaceName.of("Example", "Project"))
+ );
+
+ assertThat(node, instanceOf(
+ UntypedNamespaceNode.class,
+ has("imports", x -> x.imports(), isSequence(
+ isUntypedImportNode(NamespaceName.of("One")),
+ isUntypedImportNode(NamespaceName.of("Two", "Three"))
+ ))
+ ));
+ }
}