Classes Válidas | Classes Inválidas | ||
Condições de entrada | idade | 1 <= idade <= 120 | idade < 1 |
idade > 120 | |||
palavras no nome | palavras >= 2 | palavras < 2 | |
composição nome | nome contém apenas letras e espaços | nome contém outros caracteres | |
pessoa cliente | pessoa é cliente | pessoa não é cliente |
Os testes são implementados a seguir:
package s05;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
class MontanhaRussaControladorTest {
ClienteDao clienteDaoMock;
MontanhaRussaControlador montanhaRussaControlador;
@BeforeEach
void setUp() {
this.clienteDaoMock = mock(ClienteDao.class);
this.montanhaRussaControlador = new MontanhaRussaControlador(clienteDaoMock);
}
@ParameterizedTest
@CsvSource({
"Nome,20",
"Nome123,20",
",20",
})
void autorizarNomeInvalido(String nome, int idade) {
assertThrows(Exception.class, () -> {
this.montanhaRussaControlador.autorizar(nome, idade);
});
}
@ParameterizedTest
@CsvSource({
"Nome Correto,0",
"Nome Correto,-1",
"Nome Correto,121",
})
void autorizarIdadeInvalida(String nome, int idade) {
assertThrows(Exception.class, () -> {
this.montanhaRussaControlador.autorizar(nome, idade);
});
}
@Test
void autorizarPessoaNaoCliente(String nome, int idade) {
when(this.clienteDaoMock.ehCliente(anyString())).thenReturn(false);
assertThrows(Exception.class, () -> {
this.montanhaRussaControlador.autorizar("Nome Correto", 20);
});
}
@ParameterizedTest
@CsvSource({
"Nome Correto,18",
"Nome Correto,90",
})
void autorizarAutorizado(String nome, int idade) throws Exception {
when(this.clienteDaoMock.ehCliente(anyString())).thenReturn(true);
var result = this.montanhaRussaControlador.autorizar(nome, idade);
assertEquals(result, "autorizado");
}
@ParameterizedTest
@CsvSource({
"Nome Correto,1",
"Nome Correto,17",
})
void autorizarAcompanhadoDosPais(String nome, int idade) throws Exception {
when(this.clienteDaoMock.ehCliente(anyString())).thenReturn(true);
var result = this.montanhaRussaControlador.autorizar(nome, idade);
assertEquals(result, "acompanhado dos pais");
}
@ParameterizedTest
@CsvSource({
"Nome Correto,91",
"Nome Correto,120",
})
void autorizarAcompanhadoDoResponsavelLegal(String nome, int idade) throws Exception {
when(this.clienteDaoMock.ehCliente(anyString())).thenReturn(true);
var result = this.montanhaRussaControlador.autorizar(nome, idade);
assertEquals(result, "acompanhado do responsavel legal");
}
}