package com.tngtech.archunit.junit; import com.tngtech.archunit.core.domain.JavaClass; import com.tngtech.archunit.lang.ArchCondition; import com.tngtech.archunit.lang.ConditionEvents; import com.tngtech.archunit.lang.SimpleConditionEvent; import org.junit.runners.model.InitializationError; import static com.tngtech.archunit.lang.conditions.ArchConditions.never; class ArchUnitRunnerTestUtils { static final ArchCondition<JavaClass> BE_SATISFIED = new ArchCondition<JavaClass>("satisfy something") { @Override public void check(JavaClass item, ConditionEvents events) { events.add(SimpleConditionEvent.satisfied(item, "I'm always satisfied")); } }; static final ArchCondition<JavaClass> NEVER_BE_SATISFIED = never(BE_SATISFIED) .as("satisfy something, but don't"); static ArchUnitRunner newRunnerFor(Class<?> testClass) { try { return new ArchUnitRunner(testClass); } catch (InitializationError initializationError) { throw new RuntimeException(initializationError); } } static ArchTestExecution getRule(String name, ArchUnitRunner runner) { for (ArchTestExecution ruleToTest : runner.getChildren()) { if (name.equals(ruleToTest.getName())) { return ruleToTest; } } throw new RuntimeException(String.format("Couldn't find Rule with name '%s'", name)); } }