Search in sources :

Example 6 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project AngularAndSpring by Angular2Guy.

the class MyArchitectureTests method ruleExceptionsType.

@Test
public void ruleExceptionsType() {
    ArchRule exceptionType = ArchRuleDefinition.classes().that().resideInAPackage("..domain.exceptions..").should().beAssignableTo(RuntimeException.class).orShould().beAssignableTo(DefaultErrorAttributes.class);
    exceptionType.check(this.importedClasses);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) CompositeArchRule(com.tngtech.archunit.lang.CompositeArchRule) ArchTest(com.tngtech.archunit.junit.ArchTest) Test(org.junit.jupiter.api.Test)

Example 7 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project lnd-manageJ by C-Otto.

the class ArchUnitIT method daos_are_transactional.

@Test
void daos_are_transactional() {
    ArchRule rule = ArchRuleDefinition.classes().that().haveSimpleNameEndingWith("DaoImpl").should().beAnnotatedWith("javax.transaction.Transactional").orShould().beAnnotatedWith("org.springframework.transaction.annotation.Transactional");
    // https://stackoverflow.com/q/26387399/947526
    rule.check(importedClasses);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.jupiter.api.Test)

Example 8 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project lnd-manageJ by C-Otto.

the class ArchUnitIT method services_must_not_access_spring_data_repositories_directly.

@Test
void services_must_not_access_spring_data_repositories_directly() {
    ArchRule rule = ArchRuleDefinition.noClasses().that().areAssignableTo("org.springframework.data.repository.Repository").should().dependOnClassesThat().haveSimpleNameEndingWith("Service");
    rule.check(importedClasses);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.jupiter.api.Test)

Example 9 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project lnd-manageJ by C-Otto.

the class ArchUnitIT method public_controller_methods_are_timed.

@Test
void public_controller_methods_are_timed() {
    ArchRule rule = ArchRuleDefinition.methods().that().areDeclaredInClassesThat().areAnnotatedWith(RequestMapping.class).and().arePublic().should().beAnnotatedWith(Timed.class);
    assertThat(importedClasses).isNotEmpty();
    rule.check(importedClasses);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.jupiter.api.Test)

Example 10 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project waltz by finos.

the class EndpointArchitectureComplianceTest method extractorsNeedServiceAnnotation.

@Test
public void extractorsNeedServiceAnnotation() {
    ArchRule rule = classes().that().areAssignableTo(DataExtractor.class).and().doNotHaveModifier(ABSTRACT).and().doNotHaveSimpleName("DataExtractor").should().haveNameMatching(".*Extractor").andShould().beAnnotatedWith(Service.class);
    rule.check(waltzOnlyClasses);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.jupiter.api.Test)

Aggregations

ArchRule (com.tngtech.archunit.lang.ArchRule)141 Test (org.junit.jupiter.api.Test)90 Test (org.junit.Test)37 ArchTest (com.tngtech.archunit.junit.ArchTest)19 CompositeArchRule (com.tngtech.archunit.lang.CompositeArchRule)19 JavaClasses (com.tngtech.archunit.core.domain.JavaClasses)18 UseDataProvider (com.tngtech.java.junit.dataprovider.UseDataProvider)13 ClassFileImporter (com.tngtech.archunit.core.importer.ClassFileImporter)12 DynamicTest (org.junit.jupiter.api.DynamicTest)12 TaskanaIntegrationTest (testapi.TaskanaIntegrationTest)12 EvaluationResult (com.tngtech.archunit.lang.EvaluationResult)6 JavaClass (com.tngtech.archunit.core.domain.JavaClass)5 Immutable (org.eclipse.sirius.components.annotations.Immutable)5 ArchConfiguration (com.tngtech.archunit.ArchConfiguration)4 JavaField (com.tngtech.archunit.core.domain.JavaField)4 CanBeAnnotatedTest (com.tngtech.archunit.core.domain.properties.CanBeAnnotatedTest)4 ArchCondition (com.tngtech.archunit.lang.ArchCondition)3 ClassViolatingCodingRules (com.tngtech.archunit.example.layers.ClassViolatingCodingRules)2 ImmutableProtocol (io.camunda.zeebe.protocol.record.ImmutableProtocol)2 Record (io.camunda.zeebe.protocol.record.Record)2