Esses eu achei bem de boa, mas talvez eu tenha errado algo! XD
Primero a criação da Exception personalizada com a regra de negocio da aplicação:
package br.com.alura.escola.dominio.aluno.exceptions;
public class MaxTelefoneException extends RuntimeException{
private static final String MESSAGE = "Este aluno não pode ter mais do que dois telefones cadastrados";
public MaxTelefoneException() {
super(MESSAGE);
}
}
E assim foi a maneira como eu criei o teste unitário para a funcionalidade de adicionar numero:
@Test
void naoDeveriaPermitirCadastroAcimaDeDoisNumerosDeTelefonePorAluno() {
Aluno aluno = new Aluno(new CPF("123.456.789-00"), "Fulano", new Email("fulano@email.com"));
Telefone primeiroTelefone = new Telefone("00", "00000000");
Telefone segundoTelefone = new Telefone("11", "11111111");
Telefone terceiroTelefone = new Telefone("22", "22222222");
assertThrows(MaxTelefoneException.class, () -> {
aluno.adicionarTelefone(primeiroTelefone.getDdd(), primeiroTelefone.getNumero());
aluno.adicionarTelefone(segundoTelefone.getDdd(), segundoTelefone.getNumero());
aluno.adicionarTelefone(terceiroTelefone.getDdd(), terceiroTelefone.getNumero());
});
}
Geralmente eu gosto de trabalhar com os termos em inglês, mas espero que tenha ficado claro para quem lê, quais as intenções de cada método!