use of com.tngtech.archunit.core.domain.JavaClasses in project moduliths by moduliths.
the class ModuleDetectionStrategyUnitTest method detectsJMoleculesAnnotatedModule.
// #188
@Test
void detectsJMoleculesAnnotatedModule() {
JavaClasses classes = //
new ClassFileImporter().withImportOption(//
new ImportOption.OnlyIncludeTests()).importPackages("jmolecules");
JavaPackage javaPackage = JavaPackage.of(Classes.of(classes), "jmolecules");
assertThat(ModuleDetectionStrategy.explictlyAnnotated().getModuleBasePackages(javaPackage)).containsExactly(javaPackage);
}
use of com.tngtech.archunit.core.domain.JavaClasses in project arch-unit-build-plugin-core by societe-generale.
the class NoJavaUtilDateRuleTestTest method assertNoExceptionIsThrownFor.
private void assertNoExceptionIsThrownFor(Class clazz) {
JavaClasses classToTest = new ClassFileImporter().importClasses(clazz);
assertThatCode(() -> classes().should(NoJavaUtilDateRuleTest.notUseJavaUtilDate()).check(classToTest)).doesNotThrowAnyException();
}
use of com.tngtech.archunit.core.domain.JavaClasses in project arch-unit-build-plugin-core by societe-generale.
the class RuleInvokerService method invokeConfigurableRules.
private String invokeConfigurableRules(ConfigurableRule rule) {
if (rule.isSkip()) {
if (log.isInfoEnabled()) {
log.info("Skipping rule " + rule.getRule());
}
return "";
}
InvokableRules invokableRules = InvokableRules.of(rule.getRule(), rule.getChecks(), log);
String fullPathFromRootTopackage = getPackageNameOnWhichToApplyRules(rule);
log.info("invoking ConfigurableRule " + rule.toString() + " on " + fullPathFromRootTopackage);
JavaClasses classes = archUtils.importAllClassesInPackage(new RootClassFolder(""), fullPathFromRootTopackage, excludedPaths);
InvocationResult result = invokableRules.invokeOn(classes);
return result.getMessage();
}
use of com.tngtech.archunit.core.domain.JavaClasses in project arch-unit-build-plugin-core by societe-generale.
the class ArchUtilsTest method shouldIgnoreClassesFromConfiguredPaths.
@Test
public void shouldIgnoreClassesFromConfiguredPaths() {
JavaClasses classes = ArchUtils.importAllClassesInPackage(new RootClassFolder("./target"), "");
assertThat(classes).isNotEmpty();
JavaClass classToExclude = classes.stream().filter(c -> c.getSource().get().getUri().toString().contains("ClassToExclude")).findFirst().get();
assertThat(classToExclude).as("when no exclusion pattern configured, ClassToExclude should be found").isNotNull();
JavaClasses classesWithTestClassesExclusions = ArchUtils.importAllClassesInPackage(new RootClassFolder("./target"), "", Arrays.asList("test-classes"));
assertThat(containsClassWithPattern(classesWithTestClassesExclusions, "ClassToExclude")).as("when 'test-classes' pattern configured, ClassToExclude should still be found").isTrue();
assertThat(classes.size()).as("There should be less classes loaded when we apply the test-classes exclusion").isGreaterThan(classesWithTestClassesExclusions.size());
JavaClasses classesWithTestClassesAndSpecificExclusions = ArchUtils.importAllClassesInPackage(new RootClassFolder("./target"), "", Arrays.asList("test-classes", "ClassToExclude"));
assertThat(containsClassWithPattern(classesWithTestClassesAndSpecificExclusions, "ClassToExclude")).as("when 'ClassToExclude' pattern configured, ClassToExclude should not be found").isFalse();
assertThat(classesWithTestClassesAndSpecificExclusions.size() + 1).as("with a specific exclusion; we should have one less class than without").isEqualTo(classesWithTestClassesExclusions.size());
}
use of com.tngtech.archunit.core.domain.JavaClasses in project MovieManager by Angular2Guy.
the class MyArchitectureTests method ruleGeneralCodingRules.
@Test
public void ruleGeneralCodingRules() {
ArchRule archRule = CompositeArchRule.of(GeneralCodingRules.NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS).and(NO_CLASSES_SHOULD_USE_FIELD_INJECTION).because("Good practice");
JavaClasses classesToCheck = this.importedClasses.that(JavaClass.Predicates.resideOutsideOfPackages("..adapter.clients.test.."));
archRule.check(classesToCheck);
}
Aggregations