package com.pollex.pam; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; import com.tngtech.archunit.core.domain.JavaClasses; import com.tngtech.archunit.core.importer.ClassFileImporter; import com.tngtech.archunit.core.importer.ImportOption; import org.junit.jupiter.api.Test; class ArchTest { @Test void servicesAndRepositoriesShouldNotDependOnWebLayer() { JavaClasses importedClasses = new ClassFileImporter() .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS) .importPackages("com.pollex.pam"); noClasses() .that() .resideInAnyPackage("com.pollex.pam.business.service..") .or() .resideInAnyPackage("com.pollex.pam.business.repository..") .should() .dependOnClassesThat() .resideInAnyPackage("..com.pollex.pam.web..") .because("Services and repositories should not depend on web layer") .check(importedClasses); } }