From 9bd635fb946b087506dcf83e6fb471bb0dabac5c Mon Sep 17 00:00:00 2001 From: gjoranv Date: Wed, 11 May 2022 00:00:43 +0200 Subject: Test new language features from Java 11 to 17 - Records, switch statements and pattern matching for instanceof. --- .../plugin/classanalysis/AnalyzeClassTest.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'bundle-plugin/src/test/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassTest.java') 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) + ))); + + } } -- cgit v1.2.3