diff --git a/kbazaar/src/test/java/com/kampus/kbazaar/architecture/CodingRuleTest.java b/kbazaar/src/test/java/com/kampus/kbazaar/architecture/CodingRuleTest.java new file mode 100644 index 0000000..f34de6c --- /dev/null +++ b/kbazaar/src/test/java/com/kampus/kbazaar/architecture/CodingRuleTest.java @@ -0,0 +1,17 @@ +package com.kampus.kbazaar.architecture; + +import com.tngtech.archunit.core.importer.ImportOption; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchRule; + +import static com.tngtech.archunit.library.GeneralCodingRules.NO_CLASSES_SHOULD_USE_FIELD_INJECTION; + +@AnalyzeClasses( + packages = "com.kampus.kbazaar", + importOptions = ImportOption.DoNotIncludeTests.class) +public class CodingRuleTest { + + @ArchTest + private final ArchRule no_field_injection = NO_CLASSES_SHOULD_USE_FIELD_INJECTION; +} diff --git a/kbazaar/src/test/java/com/kampus/kbazaar/architecture/DependencyRuleTest.java b/kbazaar/src/test/java/com/kampus/kbazaar/architecture/DependencyRuleTest.java index 6937eb6..9b8075e 100644 --- a/kbazaar/src/test/java/com/kampus/kbazaar/architecture/DependencyRuleTest.java +++ b/kbazaar/src/test/java/com/kampus/kbazaar/architecture/DependencyRuleTest.java @@ -1,6 +1,7 @@ package com.kampus.kbazaar.architecture; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; import com.tngtech.archunit.core.importer.ImportOption; import com.tngtech.archunit.junit.AnalyzeClasses; @@ -36,4 +37,23 @@ public class DependencyRuleTest { .byClassesThat() .areAnnotatedWith(Service.class) .allowEmptyShould(true); + + @ArchTest + static final ArchRule repository_should_not_access_services = + noClasses() + .that() + .haveSimpleNameEndingWith("Repository") + .should() + .accessClassesThat() + .haveSimpleNameEndingWith("Service"); + + @ArchTest + static final ArchRule service_should_not_access_controller = + noClasses() + .that() + .haveSimpleNameEndingWith("Service") + .should() + .accessClassesThat() + .haveSimpleNameEndingWith("Controller") + .allowEmptyShould(true); }