Search in sources :

Example 46 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project sirius-web by eclipse-sirius.

the class CodingRulesTests method classesImplementingInputShouldBeFinal.

@Test
public void classesImplementingInputShouldBeFinal() {
    // @formatter:off
    ArchRule rule = ArchRuleDefinition.classes().that().areAssignableTo(IInput.class).and().areNotInterfaces().should().haveModifier(JavaModifier.FINAL);
    // @formatter:on
    rule.check(this.getClasses());
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.jupiter.api.Test)

Example 47 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project sirius-web by eclipse-sirius.

the class RepositoryTests method repositoriesShouldBeNamedRepository.

@Test
public void repositoriesShouldBeNamedRepository() {
    // @formatter:off
    ArchRule rule = ArchRuleDefinition.classes().that().resideInAPackage(ArchitectureConstants.SIRIUS_WEB_PERSISTENCE_ROOT_PACKAGE).and().areAssignableTo(Repository.class).should().haveSimpleNameEndingWith(REPOSITORY_SUFFIX);
    // @formatter:on
    rule.check(ArchitectureConstants.CLASSES);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.Test)

Example 48 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project sirius-web by eclipse-sirius.

the class RepositoryTests method repositoriesShouldBeAnnotatedWithRepository.

@Test
public void repositoriesShouldBeAnnotatedWithRepository() {
    // @formatter:off
    ArchRule rule = ArchRuleDefinition.classes().that().resideInAPackage(ArchitectureConstants.SIRIUS_WEB_PERSISTENCE_ROOT_PACKAGE).and().areAssignableTo(Repository.class).should().beAnnotatedWith(org.springframework.stereotype.Repository.class);
    // @formatter:on
    rule.check(ArchitectureConstants.CLASSES);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.Test)

Example 49 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project sirius-web by eclipse-sirius.

the class RepositoryTests method onlyRepositoriesShouldBeInARepositoryPackage.

@Test
public void onlyRepositoriesShouldBeInARepositoryPackage() {
    // @formatter:off
    ArchRule rule = ArchRuleDefinition.classes().that().resideInAPackage(ArchitectureConstants.SIRIUS_WEB_PERSISTENCE_ROOT_PACKAGE).and().resideInAPackage(REPOSITORIES_PACKAGE).and().haveSimpleNameNotContaining(TEST).should().beAssignableTo(Repository.class);
    // @formatter:on
    rule.check(ArchitectureConstants.CLASSES);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) Test(org.junit.Test)

Example 50 with ArchRule

use of com.tngtech.archunit.lang.ArchRule in project micrometer by micrometer-metrics.

the class JvmGcMetricsTest method noJvmImplementationSpecificApiSignatures.

@Test
void noJvmImplementationSpecificApiSignatures() {
    JavaClasses importedClasses = new ClassFileImporter().importPackages("io.micrometer.core.instrument.binder.jvm");
    ArchRule noSunManagementInMethodSignatures = methods().should().notHaveRawReturnType(resideInAPackage("com.sun.management..")).andShould().notHaveRawParameterTypes(DescribedPredicate.anyElementThat(resideInAPackage("com.sun.management..")));
    noSunManagementInMethodSignatures.check(importedClasses);
}
Also used : ArchRule(com.tngtech.archunit.lang.ArchRule) JavaClasses(com.tngtech.archunit.core.domain.JavaClasses) ClassFileImporter(com.tngtech.archunit.core.importer.ClassFileImporter) 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