Package br.com.xadm.comum.teste


package br.com.xadm.comum.teste
Fixtures de teste da casa: Testcontainers de Postgres e Garage, o PostgresTestPropertyProvider que injeta a URL do container no Micronaut Test, e a fábrica de regras ArchUnit.

Consumido como testImplementation; as classes vivem em src/main para o app herdá-las no seu test classpath. O ArchitectureTest de cada app compõe RegrasArquitetura com as regras próprias dele.

Postgres no teste

O padrão da casa é o singleton PostgresTestResource, injetado pelo PostgresTestPropertyProvider; a base IntegracaoComPostgres junta os dois e zera as tabelas do app antes de cada teste. Alvo que exige estado próprio (flag de servidor, timeline de migração) sobe container dedicado. A regra e as travas de teste estão em Java/Micronaut, Testes.

Teste que depende de Docker roda por padrão e só pula com o Docker ausente, com aviso alto (DockerDisponivelCondition). As bases que sobem container — IntegracaoComPostgres e AbstractIntegrationTest — trazem a IntegracaoDocker, e a subclasse herda a tag docker e a condição sem repetir nada. Teste de container dedicado, fora dessas bases, anota a IntegracaoDocker ele mesmo.

ArchUnit: herde a regra e a prova de que ela rodou

Regra ArchUnit sobre import vazio passa verde testando nada. Por isso a fábrica entrega a defesa anti-vácuo junto: o ArchitectureTest que compõe RegrasArquitetura abre pelo RegrasArquitetura.importNaoVazio(). O piso de versão que sustenta isso (archunit ≥ 1.4.1 no Java 25) é declarado pelo próprio módulo, e quem herda o api(...) daqui não deve rebaixá-lo.

  • Class
    Description
    Helpers para testes de integração com PostgreSQL via Testcontainers (postgres:18-alpine).
    Pula o teste de integração quando não há Docker, com aviso alto: o motivo sai em ERROR no log e no relatório do JUnit, que mostra o teste como skipped.
    Sobe um único container Garage (object storage S3-compatível) para os testes de integração — análogo a PostgresTestResource.
    Base dos testes @MicronautTest com o Postgres de teste da casa: o singleton do PostgresTestResource, injetado pelo PostgresTestPropertyProvider, com as tabelas do app zeradas antes de cada teste.
    Marca o teste de integração que precisa de Docker (Testcontainers: Postgres, Garage).
    TestPropertyProvider que aponta o datasource do Micronaut Test para o Postgres de teste da casa (PostgresTestResource), sobrescrevendo o jdbc:... do application.yml.
    Sobe um único PostgreSQLContainer (postgres:18-alpine) compartilhado entre todos os testes de integração da mesma JVM — o Postgres de teste padrão da casa.
    Fábrica das regras ArchUnit compartilhadas da casa.