Inclusive, o teste do cadastro para o caso de sucesso não estava funcionando. O que fiz que funcionou bem foi:
adicionei : io.quarkus quarkus-junit5-mockito test
no pom, e o teste:
package com.alura.agencias.services;
import com.alura.agencias.domain.Agencia;
import com.alura.agencias.domain.Endereco;
import com.alura.agencias.domain.http.AgenciaHttp;
import com.alura.agencias.exception.AgenciaNaoAtivaOuNaoEncontradaException;
import com.alura.agencias.repository.AgenciaRepository;
import com.alura.agencias.service.AgenciaService;
import com.alura.agencias.service.http.SituacaoCadastralHttpService;
import io.quarkus.test.InjectMock;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.vertx.RunOnVertxContext;
import io.quarkus.test.vertx.UniAsserter;
import io.smallrye.mutiny.Uni;
import io.smallrye.mutiny.helpers.test.UniAssertSubscriber;
import io.vertx.core.Vertx;
import jakarta.inject.Inject;
import org.codehaus.plexus.util.dag.Vertex;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
@QuarkusTest
@RunOnVertxContext
public class AgenciaServiceTest {
@InjectMock
@RestClient
private SituacaoCadastralHttpService situacaoCadastralHttpService;
@InjectMock
private AgenciaRepository agenciaRepository;
@Inject
private AgenciaService agenciaService;
@Test
void deveNaoCadastrarQuandoClientRetornarNull(UniAsserter asserter) {
Agencia agencia = criarAgencia();
Mockito.when(situacaoCadastralHttpService.buscarPorCnpj("123"))
.thenReturn(Uni.createFrom().nullItem());
asserter.assertFailedWith(
() -> agenciaService.cadastrar(agencia),
AgenciaNaoAtivaOuNaoEncontradaException.class
);
asserter.execute(() -> {
Mockito.verify(agenciaRepository, Mockito.never()).persist(agencia);
return Uni.createFrom().voidItem();
});
}
@Test
void deveCadastrarQuandoClientRetornarSituacaoCadastralAtivo(UniAsserter asserter) {
Agencia agencia = criarAgencia();
Mockito.when(situacaoCadastralHttpService.buscarPorCnpj("123"))
.thenReturn(criarAgenciaHttp());
asserter.execute(() -> agenciaService.cadastrar(agencia));
asserter.execute(() -> {
Mockito.verify(agenciaRepository).persist(agencia);
return Uni.createFrom().voidItem();
});
}
private Agencia criarAgencia() {
Endereco endereco = new Endereco(1, "Rua de teste", "Logradouro de teste", "Complemento de teste", 1);
return new Agencia(1l, "Agencia Teste", "Razao social da Agencia Teste", "123", endereco);
}
private Uni<AgenciaHttp> criarAgenciaHttp() {
return Uni.createFrom().item(new AgenciaHttp("Agencia Teste", "Razao social da Agencia Teste", "123", "ATIVO"));
}
}