예제 #1
0
        public void CalcularTaxaUmCartao()
        {
            var bandeira   = _repositoryBandeira.Obter(b => b.Nome.Contains("Visa")).FirstOrDefault();
            var adquirente = _repositoryAdquirente.Obter(b => b.Nome.Contains("Cielo")).FirstOrDefault();

            var taxa = _repositoryTaxa.ObterPorAdquirenteBandeira(bandeira.Id, adquirente.Id);

            taxa.Percentual = 0.0007;

            #region =================== Implementação do teste ==========================

            var transacaoFactory = new TransacaoFactory(180);
            var transacao        = transacaoFactory.Criar();

            transacao.CriarItem(taxa,
                                "1234123412341234",
                                "09/22",
                                "782",
                                180);

            var itemTransacao = transacao.Transacoes.FirstOrDefault();

            Assert.Equal("Cartão: 1234123412341234; Valor Lojista: R$ 179,87; Valor Adquirente: R$ 0,13.",
                         itemTransacao.DescricaoRetorno);

            _repositoryTransacao.Gravar(transacao);
            _uow.Commit();

            // Verificando se gravou corretamente na base de dados
            var transacaoGravada = _repositoryTransacao.ObterPorId(transacao.Id);
            Assert.Equal(transacao.Id, transacaoGravada.Id);
            Assert.Equal(transacao.Valor, transacaoGravada.Valor);
            Assert.Equal(transacao.Data, transacaoGravada.Data);
            Assert.Equal(180, transacaoGravada.Transacoes.Sum(x => x.Valor));

            #endregion
        }