Skip to content

Instantly share code, notes, and snippets.

@luissimas
Last active November 17, 2023 20:14
Show Gist options
  • Save luissimas/4c83f2a745971add505688e2450ed778 to your computer and use it in GitHub Desktop.
Save luissimas/4c83f2a745971add505688e2450ed778 to your computer and use it in GitHub Desktop.

Atividade 5

Classes VálidasClasses Inválidas
Condições de entradaidade1 <= idade <= 120idade < 1
idade > 120
palavras no nomepalavras >= 2palavras < 2
composição nomenome contém apenas letras e espaçosnome contém outros caracteres
pessoa clientepessoa é clientepessoa 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");
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment