aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-31 11:45:22 +0100
committerMichael Williamson <mike@zwobble.org>2016-03-31 11:45:22 +0100
commit2247cff5b5361a8124d4c261a1edb1852bd5f08f (patch)
treead9fe7759af449226f96f2c8e74a3708ed48f7c3 /src
parent3368f70469871921c12df73273c9a3a06709e4ed (diff)
Extract Python node matchers to PythonNodeMatchers
Diffstat (limited to 'src')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/python/PythonCodeGeneratorTests.java28
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/python/PythonNodeMatchers.java31
2 files changed, 33 insertions, 26 deletions
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 <T> Matcher<PythonExpressionNode> isPythonLiteral(String value) {
- return isInstance(PythonStringLiteralNode.class, hasFeature(
- "value",
- node -> node.getValue(),
- equalTo(value)));
- }
-
- private static Matcher<PythonExpressionNode> isPythonList(
- List<Matcher<? super PythonExpressionNode>> 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<PythonExpressionNode> isPythonLiteral(String value) {
+ return isInstance(PythonStringLiteralNode.class, hasFeature(
+ "value",
+ node -> node.getValue(),
+ equalTo(value)));
+ }
+
+ public static Matcher<PythonExpressionNode> isPythonList(
+ List<Matcher<? super PythonExpressionNode>> expectedElements)
+ {
+ return isInstance(PythonListNode.class, hasFeature(
+ "elements",
+ list -> list.getElements(),
+ contains(expectedElements)));
+ }
+}