Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }