aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2022-05-11 00:00:43 +0200
committergjoranv <gv@verizonmedia.com>2022-06-08 11:45:21 +0200
commit9bd635fb946b087506dcf83e6fb471bb0dabac5c (patch)
treed002aaa41cadb635a6a82fa311e53d166a3a2587 /bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java
parenta740306a3b27782aab5636c9459a7525217196cc (diff)
Test new language features from Java 11 to 17
- Records, switch statements and pattern matching for instanceof.
Diffstat (limited to 'bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java')
-rw-r--r--bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java
index 1c061ca49a2..f9f56a31b20 100644
--- a/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java
+++ b/bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.plugin.classanalysis;
+import com.google.common.collect.ImmutableList;
import com.yahoo.container.plugin.classanalysis.sampleclasses.Base;
import com.yahoo.container.plugin.classanalysis.sampleclasses.ClassAnnotation;
import com.yahoo.container.plugin.classanalysis.sampleclasses.InvisibleAnnotation;
@@ -10,6 +11,8 @@ import com.yahoo.container.plugin.classanalysis.sampleclasses.InvisibleDummyAnno
import com.yahoo.container.plugin.classanalysis.sampleclasses.Fields;
import com.yahoo.container.plugin.classanalysis.sampleclasses.Interface1;
import com.yahoo.container.plugin.classanalysis.sampleclasses.Interface2;
+import com.yahoo.container.plugin.classanalysis.sampleclasses.RecordWithOverride;
+import com.yahoo.container.plugin.classanalysis.sampleclasses.SwitchStatement;
import com.yahoo.container.plugin.classanalysis.sampleclasses.MethodAnnotation;
import com.yahoo.container.plugin.classanalysis.sampleclasses.MethodInvocation;
import com.yahoo.osgi.annotation.ExportPackage;
@@ -169,4 +172,23 @@ public class AnalyzeClassTest {
assertTrue(Analyze.analyzeClass(classFile("class/Utf8")).getReferencedClasses()
.contains("org.aspectj.weaver.MethodDeclarationLineNumber"));
}
+
+ @Test
+ public void switch_statements_are_analyzed() {
+ var referencedClasses = analyzeClass(SwitchStatement.class).getReferencedClasses();
+ assertTrue(referencedClasses.contains(name(ImmutableList.class)));
+ assertTrue(referencedClasses.contains(name(IllegalArgumentException.class)));
+ }
+
+ @Test
+ public void records_are_analyzed() {
+ var referencedClasses = analyzeClass(RecordWithOverride.class).getReferencedClasses();
+ assertTrue(referencedClasses.containsAll(List.of(
+ name(java.util.List.class),
+ name(Byte.class),
+ name(ImmutableList.class),
+ name(IllegalArgumentException.class)
+ )));
+
+ }
}