保誠-保戶業務員媒合平台
wayne
2022-03-11 242fad1691917c4fd82c7f04b6190a7113628e93
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
    }
}