aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/test/java/com/yahoo
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-02-01 12:45:45 +0100
committerJon Bratseth <bratseth@gmail.com>2022-02-01 12:45:45 +0100
commit3973e39a4637be97a5579e7a657476e1a0b8d917 (patch)
treebb110e2bee8eca7afc646c44f35152c44f4d6736 /bundle-plugin/src/test/java/com/yahoo
parenta3ac1da80933462fcb332839074efbddaf661023 (diff)
Import types referenced in lambdas
Diffstat (limited to 'bundle-plugin/src/test/java/com/yahoo')
-rw-r--r--bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeMethodBodyTest.java7
-rw-r--r--bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/TestUtilities.java2
-rw-r--r--bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Interface3.java11
-rw-r--r--bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Methods.java12
4 files changed, 32 insertions, 0 deletions
diff --git a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeMethodBodyTest.java b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeMethodBodyTest.java
index 4502f88d158..1bb6cb8976e 100644
--- a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeMethodBodyTest.java
+++ b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeMethodBodyTest.java
@@ -7,6 +7,7 @@ import com.yahoo.container.plugin.classanalysis.sampleclasses.Derived;
import com.yahoo.container.plugin.classanalysis.sampleclasses.Dummy;
import com.yahoo.container.plugin.classanalysis.sampleclasses.Fields;
import com.yahoo.container.plugin.classanalysis.sampleclasses.Interface1;
+import com.yahoo.container.plugin.classanalysis.sampleclasses.Interface3;
import com.yahoo.container.plugin.classanalysis.sampleclasses.Methods;
import org.junit.Test;
@@ -24,6 +25,7 @@ import static org.junit.Assert.assertTrue;
* @author Tony Vaagenes
*/
public class AnalyzeMethodBodyTest {
+
@Test
public void require_that_class_of_locals_are_included() {
assertTrue(analyzeClass(Methods.class).getReferencedClasses().contains(name(Base.class)));
@@ -65,6 +67,11 @@ public class AnalyzeMethodBodyTest {
}
@Test
+ public void require_that_functional_interface_usage_is_included() {
+ assertTrue(analyzeClass(Methods.class).getReferencedClasses().contains(name(Interface3.class)));
+ }
+
+ @Test
public void require_that_class_owning_method_handler_is_included() {
assertTrue(analyzeClass(Methods.class).getReferencedClasses().contains(name(ClassWithMethod.class)));
}
diff --git a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/TestUtilities.java b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/TestUtilities.java
index 9eacc0625b5..c2567e96ed9 100644
--- a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/TestUtilities.java
+++ b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/TestUtilities.java
@@ -8,6 +8,7 @@ import java.io.File;
* @author ollivir
*/
public class TestUtilities {
+
public static ClassFileMetaData analyzeClass(Class<?> clazz) {
return Analyze.analyzeClass(classFile(name(clazz)));
}
@@ -19,4 +20,5 @@ public class TestUtilities {
public static String name(Class<?> clazz) {
return clazz.getName();
}
+
}
diff --git a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Interface3.java b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Interface3.java
new file mode 100644
index 00000000000..d492cd6ed50
--- /dev/null
+++ b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Interface3.java
@@ -0,0 +1,11 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.container.plugin.classanalysis.sampleclasses;
+
+/**
+ * Input for class analysis tests.
+ *
+ * @author bratseth
+ */
+public interface Interface3 extends java.util.function.Supplier<String> {
+
+}
diff --git a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Methods.java b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Methods.java
index fcc7057dac8..3fba4b3381b 100644
--- a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Methods.java
+++ b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/sampleclasses/Methods.java
@@ -3,6 +3,7 @@ package com.yahoo.container.plugin.classanalysis.sampleclasses;
import java.util.List;
import java.util.Map;
+import java.util.function.Supplier;
/**
* Input for class analysis tests.
@@ -10,6 +11,7 @@ import java.util.Map;
*/
@SuppressWarnings("unused")
public class Methods {
+
public void method1() {
Base b = new Base();
System.out.println(Fields.field2.size());
@@ -29,5 +31,15 @@ public class Methods {
Derived d = new Derived();
}
+ public void method3() {
+ var result = methodTakingFunctionalArgument((Interface3)() -> "hello");
+ System.out.println(result);
+ }
+
+ public String methodTakingFunctionalArgument(Supplier<String> function) {
+ return function.get();
+ }
+
public void methodTakingGenericArgument(Map<String, List<Dummy>> map) {}
+
}