No codigo que é para lançar um Exception está dando erro na parte boolean isNumeroInvalido = c.getNumeroConta() <= 0; que seria relacionado a “Não deve cadastrar conta com número de conta inválido” por isso passei o <= 0
public void cadastrarConta(Conta conta) throws ContaJaExistenteException, ContaInvalidaException {
//
for (Conta c : contas) {
boolean isNomeClienteIgual = c.getCliente().getNome().equals(conta.getCliente().getNome()); //se já tem cliente existente
boolean isNumeroContaIgual = c.getNumeroConta() == conta.getNumeroConta();//conta existente
boolean isNumeroInvalido = c.getNumeroConta() <= 0;
if (isNomeClienteIgual || isNumeroContaIgual) { //lança exceção
throw new ContaJaExistenteException();
}
if (isNumeroInvalido) { //lança exceção
throw new ContaInvalidaException();
}
}
this.contas.add(conta);//se não adiciona conta na lista
}
To fazendo um teste Unitário, aí da esse erro
java.lang.Exception: Unexpected exception, expected<br.com.aula.exception.ContaInvalidaException> but was<java.lang.AssertionError>
@Test(expected = ContaInvalidaException.class)
public void naoDeveCadastrarNumeroContaInvalido() throws ContaJaExistenteException, ContaInvalidaException {
// Cenario
Cliente cliente = new Cliente("João");
Conta conta1 = new Conta(cliente, 0, 34, TipoConta.CORRENTE); //cliente, numeroConta, saldo, tipoConta
Banco banco = new Banco();
// Ação
banco.cadastrarConta(conta1);
Assert.fail();
}
Poste o código da classe Conta
package br.com.aula;
public class Conta {
private Cliente cliente;
private int numeroConta;
private int saldo;
private TipoConta tipoConta;
public Conta(Cliente cliente, int numeroConta, int saldo, TipoConta tipoConta) {
this.cliente = cliente;
this.numeroConta = numeroConta;
this.saldo = saldo;
this.tipoConta = tipoConta;
}
public void creditar(int valor) {
this.saldo = this.getSaldo() + valor;
}
public void debitar(int valor) {
this.saldo = this.getSaldo() - valor;
}
public TipoConta getTipoConta() {
return tipoConta;
}
public Cliente getCliente() {
return cliente;
}
public int getNumeroConta() {
return numeroConta;
}
public int getSaldo() {
return saldo;
}
}
Faça a verificação de número inválido fora do for.
somente isso, deu certo, obrigada
1 curtida