From 658febb9695bf7bb5e93f02578cd0a424f230676 Mon Sep 17 00:00:00 2001 From: Oliver Wolff <23139298+cuioss@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:41:39 +0200 Subject: [PATCH] Fixing Annotation Scanning --- .../PortalTestConfigurationExtension.java | 43 ++++++------------- .../PortalTestConfigurationExtensionTest.java | 6 +-- 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/modules/test/portal-core-unit-testing/src/main/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtension.java b/modules/test/portal-core-unit-testing/src/main/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtension.java index 153cb659..b1b19b2c 100644 --- a/modules/test/portal-core-unit-testing/src/main/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtension.java +++ b/modules/test/portal-core-unit-testing/src/main/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtension.java @@ -15,12 +15,11 @@ */ package de.cuioss.portal.core.test.junit5; -import static de.cuioss.tools.base.Preconditions.checkArgument; - -import java.util.Optional; - +import de.cuioss.portal.common.cdi.AnnotationInstanceProvider; +import de.cuioss.portal.configuration.PortalConfigurationSource; +import de.cuioss.portal.core.test.mocks.configuration.PortalTestConfiguration; +import de.cuioss.tools.string.Splitter; import jakarta.enterprise.inject.spi.CDI; - import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.Extension; import org.junit.jupiter.api.extension.ExtensionContext; @@ -28,10 +27,7 @@ import org.junit.platform.commons.logging.LoggerFactory; import org.junit.platform.commons.support.AnnotationSupport; -import de.cuioss.portal.common.cdi.AnnotationInstanceProvider; -import de.cuioss.portal.configuration.PortalConfigurationSource; -import de.cuioss.portal.core.test.mocks.configuration.PortalTestConfiguration; -import de.cuioss.tools.string.Splitter; +import static de.cuioss.tools.base.Preconditions.checkArgument; /** * Junit 5 {@link Extension} controlling the initialization process of a @@ -49,9 +45,9 @@ public class PortalTestConfigurationExtension implements BeforeEachCallback { private static final Logger log = LoggerFactory.getLogger(PortalTestConfigurationExtension.class); @Override - public void beforeEach(ExtensionContext context) throws Exception { + public void beforeEach(ExtensionContext context) { Class testClass = context.getTestClass() - .orElseThrow(() -> new IllegalStateException("Unable to determine Test-class")); + .orElseThrow(() -> new IllegalStateException("Unable to determine Test-class")); log.debug(() -> "Processing test-class " + testClass); CDI cdi; @@ -59,19 +55,19 @@ public void beforeEach(ExtensionContext context) throws Exception { cdi = CDI.current(); } catch (IllegalStateException e) { throw new IllegalStateException(""" - CDI not present, change the order of annotation and put @EnableAutoWeld above \ - @EnablePortalConfiguration\ - """, e); + CDI not present, change the order of annotation and put @EnableAutoWeld above \ + @EnablePortalConfiguration\ + """, e); } var configuration = cdi - .select(PortalTestConfiguration.class, AnnotationInstanceProvider.of(PortalConfigurationSource.class)) - .get(); + .select(PortalTestConfiguration.class, AnnotationInstanceProvider.of(PortalConfigurationSource.class)) + .get(); log.debug(() -> "Resolved " + configuration); configuration.clear(); - var annotation = extractAnnotation(testClass); + var annotation = AnnotationSupport.findAnnotation(testClass, EnablePortalConfiguration.class); if (annotation.isPresent()) { log.debug(() -> "Resolved annotation " + annotation.get()); for (String element : annotation.get().configuration()) { @@ -84,17 +80,4 @@ public void beforeEach(ExtensionContext context) throws Exception { log.debug(() -> "Finished processing instance " + testClass); } - - private static Optional extractAnnotation(Class testClass) { - Optional annotation = AnnotationSupport.findAnnotation(testClass, - EnablePortalConfiguration.class); - if (annotation.isPresent()) { - return annotation; - } - if (Object.class.equals(testClass.getClass())) { - return Optional.empty(); - } - return extractAnnotation(testClass.getSuperclass()); - } - } diff --git a/modules/test/portal-core-unit-testing/src/test/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtensionTest.java b/modules/test/portal-core-unit-testing/src/test/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtensionTest.java index 2cc362a5..47cedd44 100644 --- a/modules/test/portal-core-unit-testing/src/test/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtensionTest.java +++ b/modules/test/portal-core-unit-testing/src/test/java/de/cuioss/portal/core/test/junit5/PortalTestConfigurationExtensionTest.java @@ -15,15 +15,14 @@ */ package de.cuioss.portal.core.test.junit5; -import static org.junit.jupiter.api.Assertions.assertEquals; - import jakarta.inject.Inject; import jakarta.inject.Provider; - import org.eclipse.microprofile.config.inject.ConfigProperty; import org.jboss.weld.junit5.auto.EnableAutoWeld; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + @EnableAutoWeld @EnablePortalConfiguration(configuration = "key1:value1:zzz") class PortalTestConfigurationExtensionTest { @@ -36,4 +35,5 @@ class PortalTestConfigurationExtensionTest { void shouldHandleConfig() { assertEquals("value1:zzz", attribute.get()); } + }