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);
        }
Example #2
0
        public void Deve_comparar_dois_periodos_iguais()
        {
            var dataFinal = new SimuladorDeDataHoraDoSistema {
                DataHora = dataHoraAgora.AddMinutes(15)
            };
            var periodoUm   = new Periodo(dataHoraAgora, dataFinal);
            var periodoDois = new Periodo(dataHoraAgora, dataFinal);

            Assert.Equal(periodoUm, periodoDois);
        }
        public void Deve_conferir_um_ticket_emitido_ha_quinze_minutos()
        {
            //arrange
            var dataHoraDaSaida = new SimuladorDeDataHoraDoSistema {
                DataHora = DateTime.UtcNow.AddMinutes(15)
            };

            _ticket.Saida(dataHoraDaSaida);

            //act
            _recebimento.Conferir(_ticket);

            //assert
            Assert.Equal(_bilhete.DataHoraDeEntrada, _recebimento.Ticket.Permanencia.Entrada);
            Assert.Equal(dataHoraDaSaida.DataHora, _recebimento.Ticket.Permanencia.Saida);
        }
        public void Deve_realizar_uma_cobranca_pela_permanencia_de_uma_hora()
        {
            var dataHoraDaSaida = new SimuladorDeDataHoraDoSistema {
                DataHora = _bilhete.DataHoraDeEntrada.AddHours(1)
            };

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

            _recebimento.CobrancaPorPermanencia(cobrancaPorHora);

            decimal valorDaHora = 12.00m;
            double  totalDaPermanenciaEmMinutos = 60;
            decimal valorEsperadoDoTotalAPagar  = valorDaHora * (decimal)(totalDaPermanenciaEmMinutos / _minutosEmUmaHora);

            Assert.Equal(valorEsperadoDoTotalAPagar, _recebimento.TotalAPagar);
        }
        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);
        }
Example #6
0
        public void Deve_criar_um_ticket_para_o_estacionamento_de_um_veiculo()
        {
            //arrange
            var placaPadrao = "NHC 3030";
            IServicoDeEstacionamento servicoDeEstacionamento = new Condutor();
            Veiculo          veiculo         = servicoDeEstacionamento.Estacionar(placaPadrao);
            IProvedorDoTempo provedorDoTempo = new ProvedorDataHoraSistema();
            var ticket = new Ticket(provedorDoTempo);

            //act
            ticket.Entrada(veiculo);

            //assert
            var veiculoEsperado  = new FabricaDeVeiculo().ComAPlacaPadrao().Criar();
            var dataHoraEspedada = new SimuladorDeDataHoraDoSistema {
                DataHora = ticket.DataHoraDeEntrada
            };

            Assert.Equal(veiculoEsperado, ticket.Veiculo);
            Assert.Equal(dataHoraEspedada.DataHora, ticket.DataHoraDeEntrada);
            Assert.True(!ticket.Valido());
        }