package com.tngtech.archunit.exampletest;
import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.example.ClassViolatingCodingRules;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses;
public class LayerDependencyRulesTest {
private JavaClasses classes;
@Before
public void setUp() throws Exception {
classes = new ClassFileImportHelper().importTreesOf(ClassViolatingCodingRules.class);
}
@Ignore
@Test
public void services_should_not_access_controllers() {
noClasses().that().resideInAPackage("..service..")
.should().accessClassesThat().resideInAPackage("..controller..").check(classes);
}
@Ignore
@Test
public void persistence_should_not_access_services() {
noClasses().that().resideInAPackage("..persistence..")
.should().accessClassesThat().resideInAPackage("..service..").check(classes);
}
@Ignore
@Test
public void services_should_only_be_accessed_by_controllers_or_other_services() {
classes().that().resideInAPackage("..service..")
.should().onlyBeAccessed().byAnyPackage("..controller..", "..service..").check(classes);
}
}