aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java13
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java9
-rw-r--r--src/test/resources/java/lambda/com/example/Lambda.java10
3 files changed, 31 insertions, 1 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
index 6b7b5d3..cc0e5af 100644
--- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
@@ -82,7 +82,7 @@ public class JavaToPythonTests {
}
@Test
- public void anonymousClasses() throws Exception {
+ public void anonymousClassesWithoutCapture() throws Exception {
assertEquals(
value(42),
execTestProgram(
@@ -91,6 +91,17 @@ public class JavaToPythonTests {
"value",
asList()));
}
+
+ @Test
+ public void lambdasWithoutCapture() throws Exception {
+ assertEquals(
+ value(42),
+ execTestProgram(
+ "lambda",
+ TypeName.of("com.example.Lambda"),
+ "value",
+ asList()));
+ }
private PrimitiveValue execTestProgram(
String directoryName,
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 9dfe8b8..1be1abb 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
@@ -175,6 +175,15 @@ public class JavaReaderTests {
readClasses(generateMethodSource("void",
"java.util.function.Supplier<Integer> supplier = () -> { return 42; };")));
}
+
+ @Test
+ public void lambdaWithInferredArgumentsAndBlockBodyIsReadAsAnonymousClassCreation() {
+ assertEquals(
+ readClasses(generateMethodSource("void",
+ "java.util.function.Function<Integer, Integer> function = x -> x;")),
+ readClasses(generateMethodSource("void",
+ "java.util.function.Function<Integer, Integer> function = (Integer x) -> x;")));
+ }
@Test
public void argumentIsBoxedIfNecessary() {
diff --git a/src/test/resources/java/lambda/com/example/Lambda.java b/src/test/resources/java/lambda/com/example/Lambda.java
new file mode 100644
index 0000000..be8404e
--- /dev/null
+++ b/src/test/resources/java/lambda/com/example/Lambda.java
@@ -0,0 +1,10 @@
+package com.example;
+
+import java.util.function.Function;
+
+public class Lambda {
+ public static int value() {
+ Function<Integer, Integer> function = value -> value * 2;
+ return function.apply(21);
+ }
+}