datasurvey/src/test/java/org/datasurvey/ArchTest.java

30 lines
1007 B
Java

package org.datasurvey;
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("org.datasurvey");
noClasses()
.that()
.resideInAnyPackage("org.datasurvey.service..")
.or()
.resideInAnyPackage("org.datasurvey.repository..")
.should()
.dependOnClassesThat()
.resideInAnyPackage("..org.datasurvey.web..")
.because("Services and repositories should not depend on web layer")
.check(importedClasses);
}
}