aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-28 11:53:28 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-28 11:53:28 +0000
commit8eda91c53e2df91b7b8022b80476513ac8116955 (patch)
treeb9973720d615c3c32aa62ff05a1f8727d8ea8e51 /src/test
parent4330f93c6e694b546b7f3e7bfd2e18b93b15fbab (diff)
Allow reading of methods without body
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java7
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java17
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
index e30f1ef..66a7a63 100644
--- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
@@ -16,6 +16,7 @@ import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.IntStream;
@@ -133,6 +134,8 @@ public class ValueObjectTests {
return "[string 1]";
} else if (type.equals(boolean.class)) {
return true;
+ } else if (type.equals(Optional.class)) {
+ return Optional.of("[optional 1]");
} else if (type.equals(List.class)) {
return list("[list 1]");
} else if (type.equals(Set.class)) {
@@ -159,6 +162,8 @@ public class ValueObjectTests {
return "[string 2]";
} else if (type.equals(boolean.class)) {
return false;
+ } else if (type.equals(Optional.class)) {
+ return Optional.of("[optional 2]");
} else if (type.equals(List.class)) {
return list("[list 2]");
} else if (type.equals(Set.class)) {
@@ -185,6 +190,8 @@ public class ValueObjectTests {
return "[string]";
} else if (type.equals(boolean.class)) {
return true;
+ } else if (type.equals(Optional.class)) {
+ return Optional.of("[optional]");
} else if (type.equals(List.class)) {
return list("[list]");
} else if (type.equals(Set.class)) {
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 e6a7a3e..3c88424 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
@@ -311,4 +311,21 @@ public class JavaReaderTests {
assertEquals(list(), classNode.getMethods());
assertEquals(set(ObjectValues.OBJECT), classNode.getSuperTypes());
}
+
+ @Test
+ public void canReadInterfaceWithMethod() {
+ String source = "package com.example;" +
+ "public interface Example {" +
+ "int get();" +
+ "}";
+ List<TypeNode> classes = readSource("com/example/Example.java", source);
+ assertThat(classes, hasSize(1));
+ InterfaceNode classNode = (InterfaceNode) classes.get(0);
+
+ MethodNode expectedMethod = MethodNode.builder("get")
+ .isAbstract()
+ .returns(IntegerValue.REF)
+ .build();
+ assertEquals(list(expectedMethod), classNode.getMethods());
+ }
}