package com.tngtech.archunit.maventest; import com.tngtech.archunit.core.domain.JavaClass; import com.tngtech.archunit.core.domain.JavaClasses; import com.tngtech.archunit.core.importer.ImportOption.DontIncludeTests; import com.tngtech.archunit.junit.AnalyzeClasses; import com.tngtech.archunit.junit.ArchRules; import com.tngtech.archunit.junit.ArchTest; import com.tngtech.archunit.junit.ArchUnitRunner; import org.junit.runner.RunWith; import static org.junit.Assert.assertEquals; @RunWith(ArchUnitRunner.class) @AnalyzeClasses(packages = "com.tngtech.archunit.maventest", importOptions = DontIncludeTests.class) public class ArchUnitSmokeTest { @ArchTest public static void runs_without_exception(JavaClasses classes) { int count = 0; for (JavaClass javaClass : classes) { count++; } assertEquals("Expected 2 classes", 2, count); assertEquals("Number of fields in ClassOne", classes.get(ClassOne.class).getFields().size(), 1); assertEquals("Number of methods in ClassOne", classes.get(ClassOne.class).getMethods().size(), 0); assertEquals("Number of fields in ClassTwo", classes.get(ClassTwo.class).getFields().size(), 0); assertEquals("Number of methods in ClassTwo", classes.get(ClassTwo.class).getMethods().size(), 1); } @ArchTest public static final ArchRules hierarchical_rules_to_be_checked_for_evaluation_in_second_surefire_run = ArchRules.in(ArchLibrary.class); }