Пример #1
0
        public void Debitar(DebitoCommand debitoCommand)
        {
            var conta = _contaRepositorio.ObterPorId(debitoCommand.ContaId);

            if (conta.Saldo.Valor < debitoCommand.Valor)
            {
                DomainEvent.RaiseEvent(new DomainNotification("SaldoInsuficiente", "Saldo insuficiente"));
                return;
            }

            conta.Debitar(debitoCommand.Valor);
            _contaRepositorio.Editar(conta);
        }
Пример #2
0
        public IActionResult Debitar(DebitoViewModel model)
        {
            if (!ModelState.IsValid)
            {
                CarregarDropUsuario();
                return(View(model));
            }

            var debitoCommand = new DebitoCommand(model.ContaId, model.Valor);

            _movimentacaoAppServico.Debitar(debitoCommand);

            return(RedirectToAction(nameof(Index)));
        }
Пример #3
0
        public void Debitar_valor_em_conta()
        {
            var debitoCommand = new DebitoCommand(_contaId, _valor);

            var contaRepositorioMock = new Mock <IContaRepositorio>();

            contaRepositorioMock.Setup(c => c.ObterPorId(_contaId)).Returns(_contaFake);

            var contaServico = new MovimentacaoDominioServico(contaRepositorioMock.Object);

            contaServico.Debitar(debitoCommand);

            Assert.Equal(_saldoAntigo.Valor - _valor, _contaFake.Saldo.Valor);
        }
Пример #4
0
        public void Nao_debitar_valor_em_conta_se_saldo_insuficiente()
        {
            _valor = 1200;

            var debitoCommand = new DebitoCommand(_contaId, _valor);

            var contaRepositorioMock = new Mock <IContaRepositorio>();

            contaRepositorioMock.Setup(c => c.ObterPorId(_contaId)).Returns(_contaFake);
            contaRepositorioMock.Setup(c => c.Editar(_contaFake));

            var contaServico = new MovimentacaoDominioServico(contaRepositorioMock.Object);

            contaServico.Debitar(debitoCommand);

            Assert.Equal(_saldoAntigo, _contaFake.Saldo);
        }
Пример #5
0
 public void Debitar(DebitoCommand debitoCommand)
 {
     _movimentacaoDominioServico.Debitar(debitoCommand);
     Save();
 }