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));
+ }
+}