diff options
Diffstat (limited to 'src/test/java/org/zwobble')
| -rw-r--r-- | src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java | 27 |
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")) + ) + )) + )); + } } |
