Пример #1
0
        public static void Executar()
        {
            var pagamentroLogPadrao = new TransacaoService(new Logger());

            pagamentroLogPadrao.RealizarTransacao();

            var pagamentoLogCustomizado = new TransacaoService(new LogAdapter(new LogNetMasterService()));

            pagamentoLogCustomizado.RealizarTransacao();
        }
        public void TestDeveriaLancarExcecaoDeContaNaoEncontradaNoSaque()
        {
            var transacaoRepositoryMock = new Mock <ITransacaoRepository>();
            var contaRepositoryMock     = new Mock <IContaCorrenteRepository>();

            contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult((IContaCorrente)null));

            var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object);

            Assert.ThrowsAsync <ContaCorrenteNotFoundException>(async() => await transacaoService.SacarAsync(1, 1));
        }
        public static void Executar()
        {
            //TODO: Resolver com Injeção de Dependência..
            var pagamentoLogPadrao = new TransacaoService(new Logger());

            pagamentoLogPadrao.RealizarTransacao();

            var pagamentoLogCustom = new TransacaoService(new LogAdapter(new LogNetMasterService()));

            pagamentoLogCustom.RealizarTransacao();
        }
Пример #4
0
        public void FazerTransacaoPagarAcimaIgualTotalVendaSucesso()
        {
            var mockTransacao = new Mock <ITrasacaoRepository>();

            decimal totalVenda = 101.01M;
            decimal valorPago  = 150.00M;

            var transacaoService  = new TransacaoService(mockTransacao.Object);
            var transacaoResponse = transacaoService.MostrarMensagemTrocoInteligente(totalVenda, valorPago);

            Assert.IsTrue(transacaoResponse.Valido);
        }
Пример #5
0
        public void FazerTransacaoValorPagoInferiorTotalVendaFalha()
        {
            var mockTransacao = new Mock <ITrasacaoRepository>();

            decimal totalVenda = 105.42M;
            decimal valorPago  = 90.10M;

            var transacaoService  = new TransacaoService(mockTransacao.Object);
            var transacaoResponse = transacaoService.MostrarMensagemTrocoInteligente(totalVenda, valorPago);

            Assert.IsFalse(transacaoResponse.Valido);
        }
Пример #6
0
        public string Index()
        {
            Eventos.LimparDados();
            var pagamentoLogPadrao = new TransacaoService(_logger);

            pagamentoLogPadrao.RealizarTransacao();

            var pagamentoLogCustom = new TransacaoService(new LogAdapter(_logNetMaster));

            pagamentoLogCustom.RealizarTransacao();
            return(Eventos.Imprimir());
        }
        public void TestDeveriaLancarExcecaoDeValorInvalidoNoDeposito(decimal valor)
        {
            IContaCorrente conta = new ContaCorrente(1, 0);

            var transacaoRepositoryMock = new Mock <ITransacaoRepository>();
            var contaRepositoryMock     = new Mock <IContaCorrenteRepository>();

            contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult(conta));

            var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object);

            Assert.ThrowsAsync <ValorDeCreditoInvalidoException>(async() => await transacaoService.DepositarAsync(1, valor));
        }
        public async void TestDeveriaTransferirCorretamente(decimal valor, decimal saldoInicialContaOrigem, decimal saldoFinalContaOrigem, decimal saldoInicialContaDestino, decimal saldoFinalContaDestino)
        {
            IContaCorrente contaOrigem  = new ContaCorrente(1, saldoInicialContaOrigem);
            IContaCorrente contaDestino = new ContaCorrente(2, saldoInicialContaDestino);

            var transacaoRepositoryMock = new Mock <ITransacaoRepository>();
            var contaRepositoryMock     = new Mock <IContaCorrenteRepository>();

            contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult(contaOrigem));
            contaRepositoryMock.Setup(x => x.FindByIdAsync(2)).Returns(Task.FromResult(contaDestino));

            var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object);

            var transacoes = await transacaoService.TransferirAsync(1, 2, valor);

            Assert.Equal(saldoFinalContaOrigem, contaOrigem.Saldo);
            Assert.Equal(saldoFinalContaDestino, contaDestino.Saldo);
        }
Пример #9
0
        static void Main(string[] args)
        {
            /* OBS: Resolver por Injeção de dependencia */
            var transacaoComLogPadrao = new TransacaoService(new Logger());

            transacaoComLogPadrao.RealizarTransacao();

            /* A classe TransacaoService não pode ser alterada, por n motivos e ela recebe a interface iLogger no seu construtor
             *  para utilização do log customizado, deve criar uma classe de adaptação (LogAdapter) implementando a mesma interface iLogger, porém essa classe (LogAdapter)
             *  vai usar a logCustomizado por baixo dos panos, para fazer a gravação do novo de um novo jeito.
             * Dessa maneira a classe TransacaoService não foi alterada, manteve seu funcionamento e estará utilizando um outro objeto para fazer uma coisa de outra forma
             */

            var transacaoComLogPadronizado = new TransacaoService(new LogAdapter(new LoggerCustomizado()));

            transacaoComLogPadronizado.RealizarTransacao();

            Console.ReadKey();
        }
        public async Task TestDeveriaSacarCorretamente(decimal saldoInicial, decimal valorSaque, decimal saldoPosSaque, decimal valorTarifa, decimal saldoPosTarifa)
        {
            IContaCorrente conta = new ContaCorrente(1, saldoInicial);

            var transacaoRepositoryMock = new Mock <ITransacaoRepository>();
            var contaRepositoryMock     = new Mock <IContaCorrenteRepository>();

            contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult(conta));

            var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object);

            var transacao = await transacaoService.SacarAsync(1, valorSaque);

            Assert.Equal(saldoInicial, transacao.SaldoAnterior);
            Assert.Equal(valorSaque, transacao.Valor);
            Assert.Equal(saldoPosSaque, transacao.SaldoFinal);
            Assert.Equal(saldoPosSaque, transacao.Tarifa.SaldoAnterior);
            Assert.Equal(valorTarifa, transacao.Tarifa.Valor);
            Assert.Equal(saldoPosTarifa, transacao.Tarifa.SaldoFinal);
            Assert.Equal(saldoPosTarifa, transacao.Conta.Saldo);
        }
Пример #11
0
 public TransacaoServiceTest()
 {
     _transacaoService = _moq.Create <TransacaoService>();
     _moq.GetMock <ILogFactory>().Setup(x => x.Log());
 }
Пример #12
0
 public ContasController(FinancasCasalContext context, TransacaoService transacaoService, ContaService contaService)
 {
     _context          = context;
     _transacaoService = transacaoService;
     _contaService     = contaService;
 }
Пример #13
0
 public TransacaoServiceTest()
 {
     transacaoRepositoryMock = new Mock <ITransacaoRepository>();
     ServiceUnderTest        = new TransacaoService(transacaoRepositoryMock.Object);
 }
Пример #14
0
 public FundosController(FundoService fundoService, PessoaService pessoaService, TransacaoService transacaoService, ContaService contaService)
 {
     _fundoService     = fundoService;
     _pessoaService    = pessoaService;
     _transacaoService = transacaoService;
     _contaService     = contaService;
 }