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