From cbac75d770d95932ca7781786c70e73c7a09603e Mon Sep 17 00:00:00 2001 From: Stefan Feuerhahn Date: Mon, 20 Apr 2020 10:52:16 +0200 Subject: [PATCH] added first ArchUnit test --- build.gradle.kts | 1 + .../integrationtests/ArchitectureTest.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/test/java/com/beanit/openiec61850/integrationtests/ArchitectureTest.java diff --git a/build.gradle.kts b/build.gradle.kts index 92f8125..2848504 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -151,6 +151,7 @@ configure(javaProjects) { dependencies { testImplementation("org.junit.jupiter:junit-jupiter:5.5.1") + testImplementation("com.tngtech.archunit:archunit-junit5:0.13.1") } tasks.test { diff --git a/src/test/java/com/beanit/openiec61850/integrationtests/ArchitectureTest.java b/src/test/java/com/beanit/openiec61850/integrationtests/ArchitectureTest.java new file mode 100644 index 0000000..4b1c366 --- /dev/null +++ b/src/test/java/com/beanit/openiec61850/integrationtests/ArchitectureTest.java @@ -0,0 +1,20 @@ +package com.beanit.openiec61850.integrationtests; + +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; + +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchRule; + +@AnalyzeClasses(packages = "com.beanit") +public class ArchitectureTest { + + @ArchTest + public static final ArchRule only_josistack_accesses_its_internal_pkg = + classes() + .that() + .resideInAPackage("..josistack.internal..") + .should() + .onlyBeAccessed() + .byAnyPackage("..josistack.."); +}