aboutsummaryrefslogtreecommitdiff
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/couscous/tests/frontends/java/JavaReaderTests.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
index bee10b9..c9867be 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
@@ -5,7 +5,9 @@ import java.nio.file.Files;
import org.junit.Test;
import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.ExpressionNode;
+import org.zwobble.couscous.ast.ExpressionStatementNode;
import org.zwobble.couscous.ast.ReturnNode;
+import org.zwobble.couscous.ast.StatementNode;
import org.zwobble.couscous.ast.TernaryConditionalNode;
import org.zwobble.couscous.ast.ThisReferenceNode;
import org.zwobble.couscous.ast.TypeName;
@@ -159,6 +161,17 @@ public class JavaReaderTests {
literal("blah")),
returnNode.getValue());
}
+
+ @Test
+ public void canReadExpressionStatements() {
+ assertEquals(
+ new ExpressionStatementNode(
+ staticMethodCall(
+ TypeName.of("java.lang.Integer"),
+ "parseInt",
+ asList(literal("42")))),
+ readStatement("Integer.parseInt(\"42\");"));
+ }
private ExpressionNode readExpressionInInstanceMethod(String expressionSource) {
val javaClass =
@@ -172,14 +185,18 @@ public class JavaReaderTests {
}
private ExpressionNode readExpression(String expressionSource) {
+ val returnStatement = (ReturnNode) readStatement("return " + expressionSource + ";");
+ return returnStatement.getValue();
+ }
+
+ private StatementNode readStatement(String statementSource) {
val javaClass =
"public static Object main() {" +
- " return " + expressionSource + ";" +
+ statementSource +
"}";
val classNode = readClass(javaClass);
- val returnStatement = (ReturnNode) classNode.getMethods().get(0).getBody().get(0);
- return returnStatement.getValue();
+ return classNode.getMethods().get(0).getBody().get(0);
}
@SneakyThrows