Exemple #1
0
        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);
        }
Exemple #4
0
        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));
        }