From 814afa129ff03c3c6396afcf5f87ea6ae5b6413f Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 7 Oct 2015 19:16:48 +0100 Subject: Split off JavaReader and test separately --- .../tests/frontends/java/JavaReaderTests.java | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java (limited to 'src/test/java/org/zwobble/couscous/tests/frontends') 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 new file mode 100644 index 0000000..d75f16c --- /dev/null +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java @@ -0,0 +1,38 @@ +package org.zwobble.couscous.tests.frontends.java; + +import org.junit.Test; +import org.zwobble.couscous.ast.ExpressionNode; +import org.zwobble.couscous.ast.ReturnNode; +import org.zwobble.couscous.frontends.java.JavaReader; + +import static org.junit.Assert.assertEquals; +import static org.zwobble.couscous.ast.LiteralNode.literal; + +import lombok.SneakyThrows; +import lombok.val; + +public class JavaReaderTests { + @Test + public void canReadLiterals() { + assertEquals(literal("hello"), readExpression("\"hello\"")); + assertEquals(literal(true), readExpression("true")); + assertEquals(literal(false), readExpression("false")); + assertEquals(literal(42), readExpression("42")); + } + + @SneakyThrows + private ExpressionNode readExpression(String expressionSource) { + val javaClass = + "package com.example;" + + "public class Example {" + + " public static Object main() {" + + " return " + expressionSource + ";" + + " }" + + "}"; + + val reader = new JavaReader(); + val classNode = reader.readClassFromString(javaClass); + val returnStatement = (ReturnNode) classNode.getMethods().get(0).getBody().get(0); + return returnStatement.getValue(); + } +} -- cgit v1.2.3