From 5b1568636d4b6859d0c65f994cfcac32a337f31e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 26 Dec 2023 11:21:15 +0000 Subject: Split out call parsing test --- .../shedlang/compiler/parser/ParserCallTests.java | 42 ++++++++++++++++++---- 1 file changed, 36 insertions(+), 6 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/parser/ParserCallTests.java b/src/test/java/org/shedlang/compiler/parser/ParserCallTests.java index 2e05af17..ca217824 100644 --- a/src/test/java/org/shedlang/compiler/parser/ParserCallTests.java +++ b/src/test/java/org/shedlang/compiler/parser/ParserCallTests.java @@ -10,8 +10,10 @@ import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.isSequence; public class ParserCallTests { + // == Receiver == + @Test - public void canParseCallWithoutEffectsWithNoArguments() { + public void canParseReceiver() { var source = "f()"; var node = parseString(source, Parser::parseTopLevelExpression); @@ -20,12 +22,21 @@ public class ParserCallTests { node, isUntypedCallNode() .withReceiver(isUntypedReferenceNode("f")) + ); + } + + // == Effects == + + @Test + public void canParseCallWithoutEffects() { + var source = "f()"; + + var node = parseString(source, Parser::parseTopLevelExpression); + + assertThat( + node, + isUntypedCallNode() .withHasEffects(false) - .withArgs( - isUntypedArgsNode() - .withPositional(isSequence()) - .withNamed(isSequence()) - ) ); } @@ -42,6 +53,25 @@ public class ParserCallTests { ); } + // == Args == + + @Test + public void canParseCallWithNoArguments() { + var source = "f()"; + + var node = parseString(source, Parser::parseTopLevelExpression); + + assertThat( + node, + isUntypedCallNode() + .withArgs( + isUntypedArgsNode() + .withPositional(isSequence()) + .withNamed(isSequence()) + ) + ); + } + @Test public void canParseCallWithSinglePositionalArg() { var source = "f(a)"; -- cgit v1.2.3