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); }
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))); }
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); }
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); }
public void Debitar(DebitoCommand debitoCommand) { _movimentacaoDominioServico.Debitar(debitoCommand); Save(); }