public void TestDeveriaCalcularTarifaCorretamente(decimal value, decimal expected) { var contaMock = new Mock <IContaCorrente>(); contaMock.Setup(x => x.Saldo).Returns(100); var saque = new Saque(contaMock.Object, DateTime.Now, 0, value, value); var tarifa = saque.CalcularTarifa(); Assert.Equal(expected, tarifa.Valor); }
public async Task <ISaque> SacarAsync(int contaId, decimal valor) { var contaCorrente = await DoFindContaAsync(contaId); var saldoAnterior = contaCorrente.Saldo; contaCorrente.Debitar(valor); var transacao = new Saque(contaCorrente, DateTime.Now, saldoAnterior, valor, contaCorrente.Saldo); transacao.CalcularTarifa(); await this.transacaoRepository.SaveAsync(transacao); return(transacao); }