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); }
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); }
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()); }