Ejemplo n.º 1
0
        public void Deve_registrar_duas_forma_de_pagamento_a_um_recebimento()
        {
            var dataHoraDaSaida = new SimuladorDeDataHoraDoSistema {
                DataHora = _bilhete.DataHoraDeEntrada.AddMinutes(15)
            };

            _ticket.Saida(dataHoraDaSaida);
            _recebimento.Conferir(_ticket);
            var cobrancaPorHora = new CobrancaPorDiaria();

            _recebimento.CobrancaPorPermanencia(cobrancaPorHora);
            var transacaoEmDinheiro = new TransacaoFinanceira(FormaDePagamento.Dinheiro, _valorDaTransacao);

            _recebimento.Registrar(transacaoEmDinheiro);
            var transacaoEmCartaDeDebito = new TransacaoFinanceira(FormaDePagamento.CartaoDeDebito, _valorDaTransacao);

            _recebimento.Registrar(transacaoEmCartaDeDebito);

            var valorDaTransacaoEsperado      = _valorDaTransacao * 2;
            var transacoesFinanceirasEsperada = new TransacoesFinanceiras();

            transacoesFinanceirasEsperada.Adicionar(new TransacaoFinanceira(FormaDePagamento.Dinheiro, _valorDaTransacao));
            transacoesFinanceirasEsperada.Adicionar(new TransacaoFinanceira(FormaDePagamento.CartaoDeDebito, _valorDaTransacao));
            Assert.Equal(transacoesFinanceirasEsperada.Transacoes, _recebimento.TransacoesFinanceiras.Transacoes);
            Assert.True(_recebimento.TotalDasTransacoesFinanceiras() == valorDaTransacaoEsperado);
        }
Ejemplo n.º 2
0
        public void Deve_realizar_uma_cobranca_pela_permanencia_de_um_dia()
        {
            var dataHoraDaSaida = new SimuladorDeDataHoraDoSistema {
                DataHora = _bilhete.DataHoraDeEntrada.AddDays(1)
            };

            _ticket.Saida(dataHoraDaSaida);
            _recebimento.Conferir(_ticket);
            var cobrancaPorHora = new CobrancaPorDiaria();

            _recebimento.CobrancaPorPermanencia(cobrancaPorHora);

            decimal valorDaDiaria              = 22.00m;
            double  permanenciaEmHoras         = 24;
            double  totalDaPermanencia         = ArredondarParaBaixo((double)valorDaDiaria / permanenciaEmHoras, 1);
            decimal valorEsperadoDoTotalAPagar = valorDaDiaria * (decimal)totalDaPermanencia;

            Assert.Equal(valorEsperadoDoTotalAPagar, _recebimento.TotalAPagar);
        }