aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-11-24 20:54:45 +0000
committerMichael Williamson <mike@zwobble.org>2015-11-24 20:54:45 +0000
commitf4d8c1f419ef9f88e4eb7ed255b5b19da7b49e60 (patch)
tree74badae71f647e262f27a824a53175145cd091f7 /src/test
parentaa0995287d4474f18d2b63e2d0fb69773b981906 (diff)
Add hacktastic closures for lambdas (not anonymous classes)
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java11
-rw-r--r--src/test/resources/java/lambda-capture/com/example/Lambda.java10
2 files changed, 21 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
index cc0e5af..bd2fe8f 100644
--- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
@@ -102,6 +102,17 @@ public class JavaToPythonTests {
"value",
asList()));
}
+
+ @Test
+ public void lambdasWithCapture() throws Exception {
+ assertEquals(
+ value(42),
+ execTestProgram(
+ "lambda-capture",
+ TypeName.of("com.example.Lambda"),
+ "value",
+ asList(value(2))));
+ }
private PrimitiveValue execTestProgram(
String directoryName,
diff --git a/src/test/resources/java/lambda-capture/com/example/Lambda.java b/src/test/resources/java/lambda-capture/com/example/Lambda.java
new file mode 100644
index 0000000..a292a4f
--- /dev/null
+++ b/src/test/resources/java/lambda-capture/com/example/Lambda.java
@@ -0,0 +1,10 @@
+package com.example;
+
+import java.util.function.Function;
+
+public class Lambda {
+ public static int value(int factor) {
+ Function<Integer, Integer> function = value -> value * factor;
+ return function.apply(21);
+ }
+}