summaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java
index e5796e4..22cddca 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java
@@ -2,6 +2,7 @@ package org.zwobble.hobgoblin.compiler.parser;
import org.junit.jupiter.api.Test;
import org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode;
+import org.zwobble.hobgoblin.compiler.ast.untyped.UntypedStructDefinitionNode;
import org.zwobble.hobgoblin.compiler.types.NamespaceName;
import static org.zwobble.hobgoblin.compiler.parser.ParserTesting.parseString;
@@ -24,4 +25,30 @@ public class ParserNamespaceTests {
has("body", x -> x.body(), isSequence())
));
}
+
+ @Test
+ public void bodyContainsStatements() {
+ var source = """
+ struct One {}
+ struct Two {}""";
+
+ var node = parseString(
+ source,
+ tokens -> Parser.parseNamespace(tokens, NamespaceName.of("Example", "Project"))
+ );
+
+ assertThat(node, instanceOf(
+ UntypedNamespaceNode.class,
+ has("body", UntypedNamespaceNode::body, isSequence(
+ instanceOf(
+ UntypedStructDefinitionNode.class,
+ has("name", UntypedStructDefinitionNode::name, equalTo("One"))
+ ),
+ instanceOf(
+ UntypedStructDefinitionNode.class,
+ has("name", UntypedStructDefinitionNode::name, equalTo("Two"))
+ )
+ ))
+ ));
+ }
}