From 7e3abc416be5466c89df826ab3db4887acf96bc9 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 4 Apr 2016 22:27:22 +0100 Subject: Extract isArgument matcher --- .../zwobble/couscous/tests/frontends/java/JavaReaderTests.java | 8 +++----- .../org/zwobble/couscous/tests/frontends/java/NodeMatchers.java | 6 ++++++ 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src/test/java/org') 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 97b8b66..5bcb044 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 @@ -29,6 +29,7 @@ import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion; import static org.zwobble.couscous.ast.VariableReferenceNode.reference; import static org.zwobble.couscous.ast.WhileNode.whileLoop; import static org.zwobble.couscous.tests.frontends.java.JavaReading.*; +import static org.zwobble.couscous.tests.frontends.java.NodeMatchers.isArgument; import static org.zwobble.couscous.util.ExtraLists.list; import static org.zwobble.couscous.util.ExtraSets.set; @@ -74,13 +75,10 @@ public class JavaReaderTests { "}"); MethodNode method = classNode.getMethods().get(0); - FormalArgumentNode argument = method.getArguments().get(0); - assertEquals("value", argument.getName()); - assertEquals(ScalarType.of("int"), argument.getType()); - assertEquals(1, method.getArguments().size()); + assertThat(method.getArguments(), contains(isArgument("value", ScalarType.of("int")))); ReturnNode returnNode = (ReturnNode)method.getBody().get().get(0); - assertEquals(reference(argument), returnNode.getValue()); + assertEquals(reference(method.getArguments().get(0)), returnNode.getValue()); } @Test diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java index a1b60e9..efd4eb4 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java @@ -14,6 +14,12 @@ public class NodeMatchers { return hasFeature("initial value", node -> node.getInitialValue(), matcher); } + public static Matcher isArgument(String name, Type type) { + return allOf( + hasFeature("name", node -> node.getName(), equalTo(name)), + hasFeature("type", node -> node.getType(), equalTo(type))); + } + @SafeVarargs public static Matcher isFieldAccess(Matcher... matchers) { return isInstance(FieldAccessNode.class, allOf(matchers)); -- cgit v1.2.3