diff --git a/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java b/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java index b9c6742..b8a6ca2 100644 --- a/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java +++ b/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java @@ -15,16 +15,21 @@ public class ArchitectureTest { @ArchTest private static final ArchRule shouldOnlyAccessValidLayers = // - layeredArchitecture().consideringAllDependencies() // - .layer("common").definedBy("..common..") // - .layer("logic").definedBy("..logic..") // - .layer("dataaccess").definedBy("..dataaccess..") // - .layer("service").definedBy("..service..") // - .layer("batch").definedBy("..batch..") // - .layer("ui").definedBy("..ui..") // - // TODO - .because("Dependency of technical layers violates architecture rules."); + layeredArchitecture().consideringAllDependencies() // + .layer("common").definedBy("..common..") // + .layer("logic").definedBy("..logic..") // + .layer("dataaccess").definedBy("..dataaccess..") // + .layer("service").definedBy("..service..") // + .layer("client").definedBy("..client..") + .layer("batch").definedBy("..batch..") + .whereLayer("client").mayNotBeAccessedByAnyLayer() + .whereLayer("batch").mayNotBeAccessedByAnyLayer() + .whereLayer("service").mayOnlyBeAccessedByLayers("client") + .whereLayer("logic").mayOnlyBeAccessedByLayers("service", "batch") + .whereLayer("dataaccess").mayOnlyBeAccessedByLayers("logic") + .withOptionalLayers(true) + .because("Dependency of technical layers violates architecture rules."); // ... }