From 7655a129f84eaf87ad53f1a68c6e5407bd3f42cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Pfl=C3=BCgner?= Date: Fri, 13 Feb 2026 13:18:07 +0100 Subject: [PATCH] #12: recognition of org.wildfly.common.Assert assert methods --- pom.xml | 18 +++++ .../resources/META-INF/jqassistant-plugin.xml | 1 + .../jqassistant-rules/wildfly-assert.xml | 23 ++++++ .../java_testing/concept/AssertExample.java | 5 ++ .../java_testing/concept/WildflyAssertIT.java | 79 +++++++++++++++++++ 5 files changed, 126 insertions(+) create mode 100644 src/main/resources/META-INF/jqassistant-rules/wildfly-assert.xml create mode 100644 src/test/java/org/jqassistant/plugin/java_testing/concept/WildflyAssertIT.java diff --git a/pom.xml b/pom.xml index 0158df2..632a90a 100644 --- a/pom.xml +++ b/pom.xml @@ -104,6 +104,19 @@ 3.8.1 test + + org.wildfly.common + wildfly-common + 2.0.1 + test + + + + org.jboss.logging + jboss-logging + + + @@ -165,5 +178,10 @@ reactor-test test + + org.wildfly.common + wildfly-common + test + \ No newline at end of file diff --git a/src/main/resources/META-INF/jqassistant-plugin.xml b/src/main/resources/META-INF/jqassistant-plugin.xml index 7045038..372e32b 100644 --- a/src/main/resources/META-INF/jqassistant-plugin.xml +++ b/src/main/resources/META-INF/jqassistant-plugin.xml @@ -11,5 +11,6 @@ mockito.xml camunda-bpmn.xml projectreactor.xml + wildfly-assert.xml diff --git a/src/main/resources/META-INF/jqassistant-rules/wildfly-assert.xml b/src/main/resources/META-INF/jqassistant-rules/wildfly-assert.xml new file mode 100644 index 0000000..49c5f5c --- /dev/null +++ b/src/main/resources/META-INF/jqassistant-rules/wildfly-assert.xml @@ -0,0 +1,23 @@ + + + + + + Sets labels :Assert and :Wildfly for assert methods of the Wildfly Common Library. + + (assertMethod) + WHERE + assertType.fqn =~ 'org\\.wildfly\\.common\\.Assert.*' + AND assertMethod.signature =~ '.* assert.*' + SET + assertMethod:Wildfly:Assert + RETURN + assertMethod + ]]> + + + \ No newline at end of file diff --git a/src/test/java/org/jqassistant/plugin/java_testing/concept/AssertExample.java b/src/test/java/org/jqassistant/plugin/java_testing/concept/AssertExample.java index 6ccf7f3..6255035 100644 --- a/src/test/java/org/jqassistant/plugin/java_testing/concept/AssertExample.java +++ b/src/test/java/org/jqassistant/plugin/java_testing/concept/AssertExample.java @@ -5,6 +5,7 @@ import org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests; import org.mockito.BDDMockito; import org.mockito.MockedStatic; +import org.wildfly.common.Assert; import org.xmlunit.assertj.XmlAssert; import reactor.test.StepVerifier; @@ -54,4 +55,8 @@ void projectReactorAssertExampleMethod() { StepVerifier.create(null).expectComplete().verify(); } + void wildflyAssertExampleMethod() { + Assert.assertTrue(true); + } + } \ No newline at end of file diff --git a/src/test/java/org/jqassistant/plugin/java_testing/concept/WildflyAssertIT.java b/src/test/java/org/jqassistant/plugin/java_testing/concept/WildflyAssertIT.java new file mode 100644 index 0000000..81ebcee --- /dev/null +++ b/src/test/java/org/jqassistant/plugin/java_testing/concept/WildflyAssertIT.java @@ -0,0 +1,79 @@ +package org.jqassistant.plugin.java_testing.concept; + +import com.buschmais.jqassistant.core.report.api.model.Column; +import com.buschmais.jqassistant.core.report.api.model.Result; +import com.buschmais.jqassistant.core.report.api.model.Row; +import com.buschmais.jqassistant.core.rule.api.model.Concept; +import com.buschmais.jqassistant.plugin.java.api.model.MethodDescriptor; +import com.buschmais.jqassistant.plugin.java.api.model.TypeDescriptor; +import com.buschmais.jqassistant.plugin.java.test.AbstractJavaPluginIT; +import org.junit.jupiter.api.Test; +import org.wildfly.common.Assert; + +import java.util.List; +import java.util.stream.Collectors; + +import static com.buschmais.jqassistant.core.report.api.model.Result.Status.SUCCESS; +import static com.buschmais.jqassistant.plugin.java.test.assertj.MethodDescriptorCondition.methodDescriptor; +import static com.buschmais.jqassistant.plugin.java.test.assertj.TypeDescriptorCondition.typeDescriptor; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.InstanceOfAssertFactories.type; + +public class WildflyAssertIT extends AbstractJavaPluginIT { + + @Test + void wildflyAssertMethod() throws Exception { + scanClasses(AssertExample.class); + + final Result conceptResult = applyConcept("java-testing-wildfly-assert:AssertMethod"); + assertThat(conceptResult.getStatus()).isEqualTo(SUCCESS); + + store.beginTransaction(); + + assertThat(conceptResult.getRows().size()).isEqualTo(1); + assertThat(conceptResult.getRows() + .get(0) + .getColumns() + .get("assertMethod") + .getValue()).asInstanceOf(type(MethodDescriptor.class)) + .is(methodDescriptor(Assert.class, "assertTrue", boolean.class)); + + verifyResultGraph(); + + store.commitTransaction(); + } + + @Test + void providedConceptAssertMethod() throws Exception { + scanClasses(AssertExample.class); + + final Result conceptResult = applyConcept("java:AssertMethod"); + assertThat(conceptResult.getStatus()).isEqualTo(SUCCESS); + + store.beginTransaction(); + + final List declaringTypes = conceptResult.getRows().stream() + .map(Row::getColumns) + .map(columns -> columns.get("DeclaringType")) + .map(Column::getValue) + .map(TypeDescriptor.class::cast) + .collect(Collectors.toList()); + assertThat(declaringTypes).haveExactly(1, typeDescriptor(Assert.class)); + + verifyResultGraph(); + + store.commitTransaction(); + } + + // Expects an open transaction + private void verifyResultGraph() throws NoSuchMethodException { + final TestResult methodQueryResult = query( + "MATCH (testMethod:Method)-[:INVOKES]->(assertMethod:Method) " + + "WHERE assertMethod:Wildfly:Assert " + + "RETURN testMethod, assertMethod"); + assertThat(methodQueryResult.getColumn("testMethod")) + .haveExactly(1, methodDescriptor(AssertExample.class, "wildflyAssertExampleMethod")); + assertThat(methodQueryResult.getColumn("assertMethod")) + .haveExactly(1, methodDescriptor(Assert.class, "assertTrue", boolean.class)); + } +}