public void TransacaoAprovada() { Card card = PrepararTeste(); decimal saldo = card.Client.Saldo; int totalTransacao = card.Transaction.Count; decimal valor = 1; int tipo = 1; int parcelas = 1; var authenticate = authenticationService.Authencticate(card.Number, SENHA); Assert.AreEqual(authenticate.RetornoTransacao, RetornoTransacao.AUTENTICADO); Assert.IsNotNull(authenticate.Guid); RetornoTransacao retorno = transactionService.RealizarTransacao(NUMERO_CARTAO, valor, tipo, parcelas, authenticate.Guid); card = PrepararTeste(); Assert.AreEqual(retorno, RetornoTransacao.APROVADO); Assert.AreEqual(saldo - valor, card.Client.Saldo); Assert.AreEqual(totalTransacao + 1, card.Transaction.Count); Assert.AreEqual(valor, card.Transaction.Last().Amount); }
public void TesteValorInvalido() { var card = PrepararTeste(); var authenticate = authenticationService.Authencticate(card.Number, SENHA); Assert.AreEqual(authenticate.RetornoTransacao, RetornoTransacao.AUTENTICADO); Assert.IsNotNull(authenticate.Guid); RetornoTransacao retorno = transactionService.RealizarTransacao(card.Number, Convert.ToDecimal(VALOR_INVALIDO), 1, 1, authenticate.Guid); Assert.AreEqual(retorno, RetornoTransacao.VALOR_INVALIDO); }
public void TesteSaldoInsuficiente() { var card = PrepararTeste(); int tipo = 1; int parcelas = 1; var authenticate = authenticationService.Authencticate(card.Number, SENHA); Assert.AreEqual(authenticate.RetornoTransacao, RetornoTransacao.AUTENTICADO); Assert.IsNotNull(authenticate.Guid); RetornoTransacao retorno = transactionService.RealizarTransacao(card.Number, card.Client.Saldo + 1, tipo, parcelas, authenticate.Guid); Assert.AreEqual(retorno, RetornoTransacao.SALDO_INSUFICIENTE); }
public AuthenticateDTO Authencticate(string numeroCartao, string senha) { StoneEntities db = new StoneEntities(); Card card = db.Card.FirstOrDefault(f => f.Number == numeroCartao); if (card != null) { RetornoTransacao retornoTransacao = card.ValidarSenha(senha); db.SaveChanges(); return(new AuthenticateDTO(retornoTransacao, retornoTransacao == RetornoTransacao.AUTENTICADO ? card.guid : null)); } return(new AuthenticateDTO(RetornoTransacao.TRANSACAO_NEGADA, null)); }
public RetornoTransacao RealizarTransacao(string cartao, decimal valor, int tipo, int parcelas, string guid) { try { StoneEntities db = new StoneEntities(); Card card = db.Card.FirstOrDefault(f => f.Number == cartao); if (card != null) { RetornoTransacao retorno = card.ValidarTransacao(valor, tipo, parcelas, guid); if (retorno == RetornoTransacao.APROVADO) { db.SaveChanges(); } return(retorno); } return(RetornoTransacao.TRANSACAO_NEGADA); } catch { return(RetornoTransacao.TRANSACAO_NEGADA); } }
public void QuandoForRealizadoODepositoDeUmValor(Table table) { Deposito = decimal.Parse(table.Rows[0][0]); RetornoTransacao = Conta.Depositar(Deposito); }
public AuthenticateDTO(RetornoTransacao retornoTransacao, string guid) { RetornoTransacao = retornoTransacao; Guid = guid; }