public TipoCartaoCredito ObterTipoCartao(uint operadora, int bandeira, TipoCartaoEnum tipoVenda) { //Busca os cartões da operadora. Rede, Cielo, Cabal, etc. var tipoCartao = GetAll().Where(f => f.Operadora == operadora); var nomeBandeira = string.Empty; //Filtra a bandeira. switch (bandeira) { case 1: nomeBandeira = "Visa"; break; case 2: nomeBandeira = "MasterCard"; break; case 3: nomeBandeira = "Amex"; break; case 6: nomeBandeira = "Sorocred"; break; case 7: nomeBandeira = "Elo"; break; case 9: nomeBandeira = "DinersClub"; break; case 11: nomeBandeira = "Agiplan"; break; case 15: nomeBandeira = "Banescard"; break; case 23: nomeBandeira = "Cabal"; break; case 29: nomeBandeira = "Credsystem"; break; case 35: nomeBandeira = "Esplanada"; break; case 40: nomeBandeira = "Hipercard"; break; case 64: nomeBandeira = "Credz"; break; case 72: nomeBandeira = "Hiper"; break; default: nomeBandeira = "Outros"; break; } tipoCartao = tipoCartao.Where(f => f.Bandeira == BandeiraCartaoDAO.Instance.ObterIdBandeiraPelaDescricao(nomeBandeira)); //Filtra o tipo de venda. Débito ou Crédito. tipoCartao = tipoCartao.Where(f => f.Tipo == tipoVenda); if (tipoCartao.Count() == 0) { throw new Exception(string.Format("Nenhum tipo de cartão foi encontrado.\nOperadora: {0}\nBandeira: {1} - {2}\nTipo: {3}", OperadoraCartaoDAO.Instance.ObterDescricaoOperadora(operadora), bandeira, nomeBandeira, tipoVenda)); } if (tipoCartao.Count() > 1) { throw new Exception(string.Format("Mais de um tipo de cartão foi encontrado.\nOperadora: {0}\nBandeira: {1} - {2}\nTipo: {3}", OperadoraCartaoDAO.Instance.ObterDescricaoOperadora(operadora), bandeira, nomeBandeira, tipoVenda)); } return(tipoCartao.FirstOrDefault()); }
public async Task CreateAsync_ReturnOkResult(double amaunt, string merchantId, TipoTransacaoEnum tipo, BandeiraCartaoEnum cardBrand, string nome, string numeroCartao, TipoCartaoEnum tipoCartao, string password) { Guid guid; Guid.TryParse(merchantId, out guid); var cartao = new Cartao() { CardBrand = cardBrand, CardHolderName = nome, ExpirationDate = DateTime.Now.AddMonths(2), Number = numeroCartao, Type = tipoCartao, Password = password }; var transacao = new Transacao() { Amount = amaunt, ComercianteId = guid, Type = tipo, Number = 1, Card = cartao }; var comerciante = new Comerciante() { Id = guid }; // Arrange var mockServices = new Mock <IComercianteServices>(); mockServices.Setup(s => s.GetById(guid)).Returns(Task.FromResult(comerciante)); var mockBaseServices = new Mock <IBaseRepository <Transacao> >(); mockBaseServices.Setup(s => s.Insert(transacao)); var mockOperacaoCartaoServices = new Mock <IOperadoraCartaoServices>(); mockOperacaoCartaoServices.Setup(s => s.ValidarCartao(It.IsAny <Cartao>())); var servico = new TransacaoServices(mockBaseServices.Object, mockOperacaoCartaoServices.Object, mockServices.Object); // Act await servico.EfetuarOperacao(transacao); // Assert Assert.True(true); }
public async Task ValidarCartao_ReturnaSucesso(BandeiraCartaoEnum cardBrand, string nome, string numeroCartao, TipoCartaoEnum tipo, string password) { var cartao = new Cartao() { CardBrand = cardBrand, CardHolderName = nome, ExpirationDate = DateTime.Now.AddMonths(2), Number = numeroCartao, Type = tipo, Password = password }; // Arrange var service = new OperadoraCartaoServices(); var result = service.ValidarCartao(cartao); Assert.NotNull(result); }
public async Task ValidarCartao_ReturnaExcessao(BandeiraCartaoEnum cardBrand, string nome, string numeroCartao, TipoCartaoEnum tipo, string password) { var cartao = new Cartao() { CardBrand = cardBrand, CardHolderName = nome, ExpirationDate = DateTime.Now.AddMonths(2), Number = numeroCartao, Type = tipo, Password = password }; // Arrange //var mockServices = new Mock<IOperadoraCartaoServices>(); //mockServices.Setup(s => s.ValidarCartao(It.IsAny<Cartao>())).Returns(Task.FromResult(cartao)); var service = new OperadoraCartaoServices(); Assert.ThrowsAsync <Exception>(() => service.ValidarCartao(cartao)); }