30 lines
1007 B
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);
|
||
|
}
|
||
|
}
|