import static com.almundo.api.flights.cvc.architecture.CustomArchConditions.HAVE_EQUALS_AND_HASH_CODE;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;

import com.tngtech.archunit.core.importer.ImportOption;
import com.tngtech.archunit.junit.AnalyzeClasses;
import com.tngtech.archunit.junit.ArchTest;
import com.tngtech.archunit.lang.ArchRule;

@AnalyzeClasses(packages = "com.example.archunit", importOptions = ImportOption.DoNotIncludeTests.class)
class ModelRulesTest {

    @ArchTest
    static final ArchRule classesShouldOverrideEqualsAndHashCode = classes().that()
            .resideInAnyPackage("com.example.archunit.model")
            .and().areNotMemberClasses()
            .should(HAVE_EQUALS_AND_HASH_CODE)
            .because("Model classes should override equals and hashCode methods");
}