public void ContaOrigemTemSaldoMasLimiteInsuficiente_ChamadoComContasEValoresValidos_RetornarFalhaENaoAlterarSaldosELimites() { const decimal valorTransacaoAcimaDoLimiteInicial = 20500; const decimal contaCorrenteOrigemSaldoEsperado = 30000; const decimal contaCorrenteOrigemLimiteEsperado = 20000; const decimal contaCorrenteDestinoSaldoEsperado = 10000; const decimal contaCorrenteDestinoLimiteEsperado = 20000; // Assert var contaCorrenteOrigem = ContaCorrenteFactory.GetContaOrigemValida(); var contaCorrenteDestino = ContaCorrenteFactory.ObterContaDestinoValida(); contaCorrenteOrigem.Creditar(20000); var operacaoFinanceiraService = new OperacaoFinanceiraService(); // Act var resultadoOperacao = operacaoFinanceiraService.Transferencia(contaCorrenteOrigem, contaCorrenteDestino, valorTransacaoAcimaDoLimiteInicial); // Assert Assert.False(resultadoOperacao); Assert.Equal(contaCorrenteOrigemSaldoEsperado, contaCorrenteOrigem.Saldo); Assert.Equal(contaCorrenteOrigemLimiteEsperado, contaCorrenteOrigem.Limite); Assert.Equal(contaCorrenteDestinoSaldoEsperado, contaCorrenteDestino.Saldo); Assert.Equal(contaCorrenteDestinoLimiteEsperado, contaCorrenteDestino.Limite); }
public void ContaExistenteSemDocumentoNotificacaoNaoFuncionando_ChamadoDocumentoNull_RetornarFalha() { // Arrange var contaCorrente = ContaCorrenteFactory.GetContaOrigemSemDocumento(); var respostaNotificacaoViewModel = RespostaNotificacaoViewModelFactory.ObterRespostaFalha(); var contaCorrenteRepositoryMock = new Mock <IContaCorrenteRepository>(); var notificacaoServiceMock = new Mock <INotificacaoService>(); contaCorrenteRepositoryMock.Setup(ccr => ccr.ObterPorDocumento(contaCorrente.Documento)).Returns((ContaCorrente)null); notificacaoServiceMock.Setup(ns => ns.Notificar(contaCorrente)).Returns(respostaNotificacaoViewModel); var contaCorrenteService = new ContaCorrenteService(notificacaoServiceMock.Object, contaCorrenteRepositoryMock.Object); // Act var resposta = contaCorrenteService.NotificarContaCorrente(contaCorrente.Documento); // Assert contaCorrenteRepositoryMock.Verify(ccr => ccr.ObterPorDocumento(contaCorrente.Documento), Times.Once); notificacaoServiceMock.Verify(ns => ns.Notificar(It.IsAny <ContaCorrente>()), Times.Never); Assert.False(resposta); }
public void ContaOrigemTemLimiteESaldoSuficiente_ChamadoComContasEValoresValidos_RetornarSucessoEDebitarDosSaldosELImiteCorretamente() { const decimal valorTransacao = 500; const decimal contaCorrenteOrigemSaldoEsperado = 9500; const decimal contaCorrenteOrigemLimiteEsperado = 19500; const decimal contaCorrenteDestinoSaldoEsperado = 10500; const decimal contaCorrenteDestinoLimiteEsperado = 20000; // Arrange var contaCorrenteOrigem = ContaCorrenteFactory.GetContaOrigemValida(); var contaCorrenteDestino = ContaCorrenteFactory.ObterContaDestinoValida(); var operacaoFinanceiraService = new OperacaoFinanceiraService(); // Act var resultadoOperacao = operacaoFinanceiraService.Transferencia(contaCorrenteOrigem, contaCorrenteDestino, valorTransacao); // Assert Assert.True(resultadoOperacao); Assert.Equal(contaCorrenteOrigemSaldoEsperado, contaCorrenteOrigem.Saldo); Assert.Equal(contaCorrenteOrigemLimiteEsperado, contaCorrenteOrigem.Limite); Assert.Equal(contaCorrenteDestinoSaldoEsperado, contaCorrenteDestino.Saldo); Assert.Equal(contaCorrenteDestinoLimiteEsperado, contaCorrenteDestino.Limite); }
public OperacoesEmContaCorrenteSteps() { Conta = ContaCorrenteFactory.NovaContaCorrente(Guid.NewGuid(), "0001234", true); }