aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-28 11:04:03 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-28 11:04:03 +0000
commit7086fc85439429556c8b164c546917edb8dee3ca (patch)
tree6432043d7d4ebaf9249bd21b9673cc78b4b41871
parentafb080fc53d7bb3bbbf9dd21619b460e825854b0 (diff)
Add WIP test for interfaces
-rw-r--r--src/test/java/org/zwobble/couscous/tests/CompilerTests.java14
-rw-r--r--src/test/resources/java/implement-user-interface/com/example/ConstantIntSupplier.java14
-rw-r--r--src/test/resources/java/implement-user-interface/com/example/IntSupplier.java5
3 files changed, 33 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java
index f03f6ce..7d4a842 100644
--- a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java
@@ -1,5 +1,6 @@
package org.zwobble.couscous.tests;
+import org.junit.Ignore;
import org.junit.Test;
import org.zwobble.couscous.ast.TypeName;
import org.zwobble.couscous.values.BooleanValue;
@@ -87,6 +88,19 @@ public abstract class CompilerTests {
}
@Test
+ @Ignore("WIP")
+ public void canImplementUserDefinedInterface() throws Exception {
+ assertEquals(
+ value(42),
+ execTestProgram(
+ "implement-user-interface",
+ TypeName.of("com.example.ConstantIntSupplier"),
+ "value",
+ list(),
+ IntegerValue.REF));
+ }
+
+ @Test
public void anonymousClassesWithoutCapture() throws Exception {
assertEquals(
value(42),
diff --git a/src/test/resources/java/implement-user-interface/com/example/ConstantIntSupplier.java b/src/test/resources/java/implement-user-interface/com/example/ConstantIntSupplier.java
new file mode 100644
index 0000000..5198d61
--- /dev/null
+++ b/src/test/resources/java/implement-user-interface/com/example/ConstantIntSupplier.java
@@ -0,0 +1,14 @@
+package com.example;
+
+import java.util.function.Supplier;
+
+public class ConstantIntSupplier implements IntSupplier {
+ public static int value() {
+ IntSupplier supplier = new ConstantIntSupplier();
+ return supplier.get();
+ }
+
+ public int get() {
+ return 42;
+ }
+}
diff --git a/src/test/resources/java/implement-user-interface/com/example/IntSupplier.java b/src/test/resources/java/implement-user-interface/com/example/IntSupplier.java
new file mode 100644
index 0000000..4c5e5a5
--- /dev/null
+++ b/src/test/resources/java/implement-user-interface/com/example/IntSupplier.java
@@ -0,0 +1,5 @@
+package com.example;
+
+public interface IntSupplier {
+ int get();
+}