Class RegrasArquitetura

java.lang.Object
br.com.xadm.comum.teste.RegrasArquitetura

public final class RegrasArquitetura extends Object
Fábrica das regras ArchUnit compartilhadas da casa. Cada app monta seu ArchitectureTest com @AnalyzeClasses(packagesOf = Application.class) e compõe estas regras (parametrizadas pelo pacote-base) com as regras próprias da sua topologia — a base não é achatada: só sobe o que é genuinamente comum (plano 003 T3).

Uso:

@ArchTest static final ArchRule semCiclos =
    RegrasArquitetura.semCiclosEntreFatias("br.com.xadm.meuapp");
  • Method Details

    • semCiclosEntreFatias

      public static com.tngtech.archunit.lang.ArchRule semCiclosEntreFatias(String pacoteBase)
      Sem ciclos entre as fatias de topo do pacote-base — a invariante que onpetro e vantroba já compartilham (package-by-layer e package-by-feature).
      Parameters:
      pacoteBase - pacote-base do app (ex.: br.com.xadm.meuapp)
      Returns:
      regra ArchUnit de ausência de ciclos entre as fatias de {pacoteBase}.(*)..
    • camadaNaoDepende

      public static com.tngtech.archunit.lang.ArchRule camadaNaoDepende(String pacoteOrigem, String pacoteDestino, String motivo)
      Uma camada não depende de outra (ex.: parsing não depende da camada HTTP).
      Parameters:
      pacoteOrigem - padrão do pacote de origem (ex.: ..processing..)
      pacoteDestino - padrão do pacote proibido como dependência (ex.: ..api..)
      motivo - justificativa (aparece na falha)
      Returns:
      regra ArchUnit proibindo a dependência origem→destino