From 6f829beb148b7bd4c19b72e307a8b11b5c139b03 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 25 Oct 2015 17:53:39 +0000 Subject: Remove lombok from AssignmentNode --- .../zwobble/couscous/tests/BackendMethodTests.java | 6 ++-- .../zwobble/couscous/tests/ValueObjectTests.java | 33 ++++++++++++++++++++-- .../tests/interpreter/InterpreterMethodTests.java | 6 ++-- 3 files changed, 37 insertions(+), 8 deletions(-) (limited to 'src/test/java/org') diff --git a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java index 44ad2a4..0fa4972 100644 --- a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java +++ b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java @@ -1,7 +1,6 @@ package org.zwobble.couscous.tests; import org.junit.Test; -import org.zwobble.couscous.ast.AssignmentNode; import org.zwobble.couscous.ast.ClassNode; import org.zwobble.couscous.ast.ExpressionStatementNode; import org.zwobble.couscous.ast.LiteralNode; @@ -13,6 +12,7 @@ import org.zwobble.couscous.values.StringValue; import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; +import static org.zwobble.couscous.ast.AssignmentNode.assign; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration; @@ -57,7 +57,7 @@ public abstract class BackendMethodTests { val arg = formalArg(var(ANY_ID, "x", StringValue.REF)); val method = staticMethod("hello") .argument(arg) - .statement(new ExpressionStatementNode(new AssignmentNode(reference(arg), LiteralNode.literal("[updated value]")))) + .statement(new ExpressionStatementNode(assign(reference(arg), LiteralNode.literal("[updated value]")))) .statement(new ReturnNode(reference(arg))); val result = runMethod(method, value("[initial value]")); @@ -82,7 +82,7 @@ public abstract class BackendMethodTests { ANY_ID, "x", StringValue.REF, LiteralNode.literal("[initial value]")); val method = staticMethod("hello") .statement(localVariableDeclaration) - .statement(new ExpressionStatementNode(new AssignmentNode(reference(localVariableDeclaration), LiteralNode.literal("[updated value]")))) + .statement(new ExpressionStatementNode(assign(reference(localVariableDeclaration), LiteralNode.literal("[updated value]")))) .statement(new ReturnNode(reference(localVariableDeclaration))); val result = runMethod(method); diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java index 287d6a8..c7276b1 100644 --- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java +++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java @@ -2,6 +2,7 @@ package org.zwobble.couscous.tests; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.util.function.Function; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -11,8 +12,15 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.zwobble.couscous.ast.AnnotationNode; +import org.zwobble.couscous.ast.AssignableExpressionNode; +import org.zwobble.couscous.ast.AssignmentNode; +import org.zwobble.couscous.ast.ExpressionNode; +import org.zwobble.couscous.ast.LiteralNode; import org.zwobble.couscous.ast.VariableDeclaration; +import org.zwobble.couscous.ast.VariableReferenceNode; import org.zwobble.couscous.util.ExtraArrays; +import org.zwobble.couscous.values.PrimitiveValue; +import org.zwobble.couscous.values.StringValue; import com.google.common.base.Joiner; @@ -33,6 +41,7 @@ public class ValueObjectTests { public static Iterable valueObjectTypes() { return asList(new Object[][] { {AnnotationNode.class}, + {AssignmentNode.class}, {VariableDeclaration.class} }); } @@ -99,6 +108,12 @@ public class ValueObjectTests { private static Object generateFirstInstance(Class type) { if (type.equals(String.class)) { return "[string 1]"; + } else if (type.equals(PrimitiveValue.class)) { + return generateFirstInstance(StringValue.class); + } else if (type.equals(ExpressionNode.class)) { + return generateFirstInstance(LiteralNode.class); + } else if (type.equals(AssignableExpressionNode.class)) { + return generateFirstInstance(VariableReferenceNode.class); } else { return generateValue(type, ValueObjectTests::generateFirstInstance).instance; } @@ -107,6 +122,12 @@ public class ValueObjectTests { private static Object generateSecondInstance(Class type) { if (type.equals(String.class)) { return "[string 2]"; + } else if (type.equals(PrimitiveValue.class)) { + return generateSecondInstance(StringValue.class); + } else if (type.equals(ExpressionNode.class)) { + return generateSecondInstance(LiteralNode.class); + } else if (type.equals(AssignableExpressionNode.class)) { + return generateSecondInstance(VariableReferenceNode.class); } else { return generateValue(type, ValueObjectTests::generateSecondInstance).instance; } @@ -115,6 +136,12 @@ public class ValueObjectTests { private static Object generateInstance(Class type) { if (type.equals(String.class)) { return "[string]"; + } else if (type.equals(PrimitiveValue.class)) { + return generateInstance(StringValue.class); + } else if (type.equals(ExpressionNode.class)) { + return generateInstance(LiteralNode.class); + } else if (type.equals(AssignableExpressionNode.class)) { + return generateInstance(VariableReferenceNode.class); } else { return generateValue(type, ValueObjectTests::generateInstance).instance; } @@ -134,8 +161,10 @@ public class ValueObjectTests { } private static Class[] fieldTypes(Class type) { - Field[] fields = type.getDeclaredFields(); - return ExtraArrays.map(fields, field -> field.getType()) + return asList(type.getDeclaredFields()) + .stream() + .filter(field -> !Modifier.isStatic(field.getModifiers())) + .map(field -> field.getType()) .toArray(Class[]::new); } diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java index 9d23a45..9ef64d2 100644 --- a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.stream.Collectors; import org.junit.Test; -import org.zwobble.couscous.ast.AssignmentNode; import org.zwobble.couscous.ast.ClassNode; import org.zwobble.couscous.ast.ExpressionStatementNode; import org.zwobble.couscous.ast.LiteralNode; @@ -24,6 +23,7 @@ import org.zwobble.couscous.values.PrimitiveValue; import org.zwobble.couscous.values.StringValue; import static org.junit.Assert.assertEquals; +import static org.zwobble.couscous.ast.AssignmentNode.assign; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration; @@ -52,7 +52,7 @@ public class InterpreterMethodTests extends BackendMethodTests { val arg = formalArg(var(ANY_ID, "x", StringValue.REF)); val method = staticMethod("hello") .argument(arg) - .statement(new ExpressionStatementNode(new AssignmentNode(reference(arg), literal(0)))); + .statement(new ExpressionStatementNode(assign(reference(arg), literal(0)))); val exception = assertThrows(UnexpectedValueType.class, () -> runMethod(method, value(""))); @@ -65,7 +65,7 @@ public class InterpreterMethodTests extends BackendMethodTests { val localVariableDeclaration = localVariableDeclaration( ANY_ID, "x", StringValue.REF, literal("")); val method = staticMethod("hello") - .statement(new ExpressionStatementNode(new AssignmentNode(reference(localVariableDeclaration), LiteralNode.literal("[updated value]")))); + .statement(new ExpressionStatementNode(assign(reference(localVariableDeclaration), LiteralNode.literal("[updated value]")))); val exception = assertThrows(VariableNotInScope.class, () -> runMethod(method)); -- cgit v1.2.3