public void SaqueService_RealizaSaque_Saca300ComSucesso() { // Arrange var configuracaoMock = new Mock <IConfiguracaoSaqueService>(); configuracaoMock.Setup(o => o.IniciaCaixaEletronico()).Returns(new ConfiguracaoSaque { NotasDisponiveis = TipoNota.Dois | TipoNota.Cinco | TipoNota.Dez | TipoNota.Vinte | TipoNota.Cinquenta | TipoNota.Cem, ValorLimiteSaque = 1500 }); SaqueService saqueService = new SaqueService(configuracaoMock.Object); // Act var resultado = saqueService.RealizaSaque(new SaqueDTO { ValorRequisitado = 300 }); // Assert Assert.AreEqual(resultado[TipoNota.Cem], 3); Assert.AreEqual(resultado[TipoNota.Cinquenta], 0); Assert.AreEqual(resultado[TipoNota.Vinte], 0); Assert.AreEqual(resultado[TipoNota.Dez], 0); Assert.AreEqual(resultado[TipoNota.Cinco], 0); Assert.AreEqual(resultado[TipoNota.Dois], 0); }
public void Teste_Saque_atualiza_Saldo_ContaCorrenteNormal() { var conta = new ContaCorrenteNormal(); conta.Creditar(1000); conta.Numero = "222"; SaqueService ss = new SaqueService(conta, 100); ss.Executar(); decimal expected = 900.00m; var actual = conta.Saldo; //testa atualização do saldo Assert.AreEqual(expected, actual); }
public void Teste_Saque_atualiza_saldo_ContaCorrenteEspecial() { var conta = new ContaCorrenteEspecial(); conta.Situacao = ContaCorrenteEstado.Bloqueada; conta.Creditar(0); conta.LimiteDeCredito = 300; conta.Numero = "333"; SaqueService ss = new SaqueService(conta, 100); ss.Executar(); decimal expected = -200.00m; var actual = conta.Saldo; //testa atualização do saldo Assert.AreEqual(expected, actual); }
public void SaqueService_ValorRequisitadoValido_SacaValorInvalidoEmNotasDeDois() { // Arrange var configuracaoMock = new Mock <IConfiguracaoSaqueService>(); configuracaoMock.Setup(o => o.IniciaCaixaEletronico()).Returns(new ConfiguracaoSaque { NotasDisponiveis = TipoNota.Dois | TipoNota.Cinco | TipoNota.Dez | TipoNota.Vinte | TipoNota.Cinquenta | TipoNota.Cem, ValorLimiteSaque = 1500 }); SaqueService saqueService = new SaqueService(configuracaoMock.Object); // Act var resultado = saqueService.ValorRequisitadoValido(new SaqueDTO { ValorRequisitado = 3 }); // Assert Assert.IsFalse(resultado); }
public void SaqueService_EstaNoLimite_SacaValorMenorQueLimite() { // Arrange var configuracaoMock = new Mock <IConfiguracaoSaqueService>(); configuracaoMock.Setup(o => o.IniciaCaixaEletronico()).Returns(new ConfiguracaoSaque { NotasDisponiveis = TipoNota.Dois | TipoNota.Cinco | TipoNota.Dez | TipoNota.Vinte | TipoNota.Cinquenta | TipoNota.Cem, ValorLimiteSaque = 1500 }); SaqueService saqueService = new SaqueService(configuracaoMock.Object); // Act var resultado = saqueService.EstaNoLimite(new SaqueDTO { ValorRequisitado = 1499 }); // Assert Assert.IsTrue(resultado); }
public IActionResult Index(SaqueViewModel saqueViewModel) { SaqueService saqueService = new SaqueService(); SaqueDTO saqueDTO = new SaqueDTO { ValorRequisitado = saqueViewModel.ValorRequisitado }; if (!saqueService.EstaNoLimite(saqueDTO)) { saqueViewModel.Erro = @"O valor informado passou do limite de R$ 1.500,00."; return(View(saqueViewModel)); } if (!saqueService.ValorRequisitadoValido(saqueDTO)) { saqueViewModel.Erro = @"O valor informado é inválido. Favor informar um valor múltiplo de 2, 5, 10, 20, 50 ou 100."; return(View(saqueViewModel)); } saqueViewModel.ValoresSaque = saqueService.RealizaSaque(saqueDTO); return(View(saqueViewModel)); }