From 2247cff5b5361a8124d4c261a1edb1852bd5f08f Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 31 Mar 2016 11:45:22 +0100 Subject: Extract Python node matchers to PythonNodeMatchers --- .../backends/python/PythonCodeGeneratorTests.java | 28 ++----------------- .../tests/backends/python/PythonNodeMatchers.java | 31 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 26 deletions(-) create mode 100644 src/test/java/org/zwobble/couscous/tests/backends/python/PythonNodeMatchers.java (limited to 'src/test') diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCodeGeneratorTests.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCodeGeneratorTests.java index b734782..3976e4b 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCodeGeneratorTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCodeGeneratorTests.java @@ -1,22 +1,14 @@ package org.zwobble.couscous.tests.backends.python; -import org.hamcrest.Matcher; import org.junit.Test; import org.zwobble.couscous.backends.python.PythonCodeGenerator; -import org.zwobble.couscous.backends.python.ast.PythonExpressionNode; -import org.zwobble.couscous.backends.python.ast.PythonListNode; -import org.zwobble.couscous.backends.python.ast.PythonStringLiteralNode; import org.zwobble.couscous.types.Types; -import java.util.List; - import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.equalTo; import static org.zwobble.couscous.ast.ArrayNode.array; import static org.zwobble.couscous.ast.LiteralNode.literal; -import static org.zwobble.couscous.tests.util.ExtraMatchers.hasFeature; -import static org.zwobble.couscous.tests.util.ExtraMatchers.isInstance; +import static org.zwobble.couscous.tests.backends.python.PythonNodeMatchers.isPythonList; +import static org.zwobble.couscous.tests.backends.python.PythonNodeMatchers.isPythonLiteral; import static org.zwobble.couscous.util.ExtraLists.list; public class PythonCodeGeneratorTests { @@ -28,20 +20,4 @@ public class PythonCodeGeneratorTests { literal("two")))), isPythonList(list(isPythonLiteral("one"), isPythonLiteral("two")))); } - - private Matcher isPythonLiteral(String value) { - return isInstance(PythonStringLiteralNode.class, hasFeature( - "value", - node -> node.getValue(), - equalTo(value))); - } - - private static Matcher isPythonList( - List> expectedElements) - { - return isInstance(PythonListNode.class, hasFeature( - "elements", - list -> list.getElements(), - contains(expectedElements))); - } } diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonNodeMatchers.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonNodeMatchers.java new file mode 100644 index 0000000..a8a9188 --- /dev/null +++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonNodeMatchers.java @@ -0,0 +1,31 @@ +package org.zwobble.couscous.tests.backends.python; + +import org.hamcrest.Matcher; +import org.zwobble.couscous.backends.python.ast.PythonExpressionNode; +import org.zwobble.couscous.backends.python.ast.PythonListNode; +import org.zwobble.couscous.backends.python.ast.PythonStringLiteralNode; + +import java.util.List; + +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.equalTo; +import static org.zwobble.couscous.tests.util.ExtraMatchers.hasFeature; +import static org.zwobble.couscous.tests.util.ExtraMatchers.isInstance; + +public class PythonNodeMatchers { + public static Matcher isPythonLiteral(String value) { + return isInstance(PythonStringLiteralNode.class, hasFeature( + "value", + node -> node.getValue(), + equalTo(value))); + } + + public static Matcher isPythonList( + List> expectedElements) + { + return isInstance(PythonListNode.class, hasFeature( + "elements", + list -> list.getElements(), + contains(expectedElements))); + } +} -- cgit v1.2.3