public void Receber() { DTORecebimentoCaixa dto = this._fachada.CalcularRecebimento(this.ObtemDTOAtual()); this._fachada.Receber(dto); this._visao.FinalizarRecebimento(); }
public void Devo_Conseguir_Receber() { Caixa caixa = new Caixa(100); var repositorioCaixaStub = new Mock <ICaixaRepositorio>(); repositorioCaixaStub.Setup(r => r.ObterUltimoCaixaAberto()).Returns(caixa); repositorioCaixaStub.Setup(r => r.Salvar(caixa)); DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorDinheiro = 50; dto.ValorCartaoDebito = 25; dto.ValorCartaoCredito = 25; dto.ValorReceber = 90; dto.ValorTroco = 10; IFachadaCaixa fachada = new FachadaCaixa(repositorioCaixaStub.Object); fachada.Receber(dto); repositorioCaixaStub.Verify(r => r.ObterUltimoCaixaAberto()); repositorioCaixaStub.Verify(r => r.Salvar(caixa)); Assert.AreEqual(140, caixa.SaldoDinheiro); Assert.AreEqual(25, caixa.SaldoCartaoCredito); Assert.AreEqual(25, caixa.SaldoCartaoDebito); Assert.AreEqual(190, caixa.SaldoGeral); }
public void Nao_Devo_Conseguir_Receber_Se_O_Valor_Restante_For_Maior_Que_Zero() { DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorRestante = 15; IFachadaCaixa fachada = new FachadaCaixa(null); fachada.Receber(dto); }
public DTORecebimentoCaixa ReceberRestanteComCartaoDebito(DTORecebimentoCaixa dto) { DTORecebimentoCaixa dtoRetorno = this.CalcularRecebimento(dto); dto.ValorCartaoDebito += dtoRetorno.ValorRestante; dtoRetorno = this.CalcularRecebimento(dto); return(dtoRetorno); }
public DTORecebimentoCaixa ReceberRestanteComDinheiro(DTORecebimentoCaixa dto) { DTORecebimentoCaixa dtoRetorno = this.CalcularRecebimento(dto); dto.ValorDinheiro += dtoRetorno.ValorRestante; dtoRetorno = this.CalcularRecebimento(dto); return(dtoRetorno); }
private DTORecebimentoCaixa ObtemDTOAtual() { DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorReceber = this._visao.GetValorReceber(); dto.ValorDinheiro = this._visao.GetValorDinheiro(); dto.ValorCartaoCredito = this._visao.GetValorCartaoCredito(); dto.ValorCartaoDebito = this._visao.GetValorCartaoDebito(); return(dto); }
public void Nao_Devo_Conseguir_Receber_Se_Nao_Houver_Nenhum_Caixa_Aberto() { var repositorioCaixaStub = new Mock <ICaixaRepositorio>(); repositorioCaixaStub.Setup(r => r.ObterUltimoCaixaAberto()).Returns <Caixa>(null); IFachadaCaixa fachada = new FachadaCaixa(repositorioCaixaStub.Object); DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorDinheiro = 100; dto.ValorReceber = 100; fachada.Receber(dto); }
public void Nao_Devo_Conseguir_Receber_Se_O_Valor_Do_Troco_For_Maior_Que_O_Saldo_Em_Dinheiro_Do_Caixa() { Caixa caixa = new Caixa(100); var repositorioCaixaStub = new Mock <ICaixaRepositorio>(); repositorioCaixaStub.Setup(r => r.ObterUltimoCaixaAberto()).Returns(caixa); DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorTroco = 120; IFachadaCaixa fachada = new FachadaCaixa(repositorioCaixaStub.Object); fachada.Receber(dto); }
public void Devo_Conseguir_Obter_Valor_Troco_Se_A_Soma_For_Maior_Que_O_Valor_A_Receber() { DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorReceber = 100; dto.ValorDinheiro = 50; dto.ValorCartaoCredito = 30; dto.ValorCartaoDebito = 30; Caixa caixa = new Caixa(100m); IFachadaCaixa fachada = new FachadaCaixa(null); DTORecebimentoCaixa dtoRetorno = fachada.CalcularRecebimento(dto); Assert.AreEqual(10, dtoRetorno.ValorTroco); }
public void Devo_Conseguir_Obter_Valor_Restante_Ao_Calcular_Recebimento() { DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorReceber = 100; dto.ValorDinheiro = 30; dto.ValorCartaoCredito = 30; dto.ValorCartaoDebito = 30; Caixa caixa = new Caixa(100m); IFachadaCaixa fachada = new FachadaCaixa(null); DTORecebimentoCaixa dtoRetorno = fachada.CalcularRecebimento(dto); Assert.AreEqual(10, dtoRetorno.ValorRestante); }
public void Devo_Conseguir_Receber_Valor_Restante_Com_Dinheiro() { DTORecebimentoCaixa dto = new DTORecebimentoCaixa(); dto.ValorReceber = 100; dto.ValorDinheiro = 10; dto.ValorCartaoCredito = 30; dto.ValorCartaoDebito = 30; Caixa caixa = new Caixa(100m); IFachadaCaixa fachada = new FachadaCaixa(null); DTORecebimentoCaixa dtoRetorno = fachada.ReceberRestanteComDinheiro(dto); Assert.AreEqual(40, dtoRetorno.ValorDinheiro); Assert.AreEqual(0, dtoRetorno.ValorRestante); Assert.AreEqual(0, dtoRetorno.ValorTroco); }
public void Receber(DTORecebimentoCaixa dto) { if (dto.ValorRestante > 0) { throw new ExcecaoValorPagoMenorQueValorAReceber(); } Caixa caixa = this._repositorio.ObterUltimoCaixaAberto(); try { if (dto.ValorTroco > caixa.SaldoDinheiro) { throw new ExcecaoValorInsuficienteEmCaixa(); } if (dto.ValorDinheiro > 0) { caixa.ReceberAtendimentoEmDinheiro(dto.ValorDinheiro); } if (dto.ValorCartaoCredito > 0) { caixa.ReceberAtendimentoCartaoCredito(dto.ValorCartaoCredito); } if (dto.ValorCartaoDebito > 0) { caixa.ReceberAtendimentoCartaoDebito(dto.ValorCartaoDebito); } if (dto.ValorTroco > 0) { caixa.EfetuarSaidaParaTroco(dto.ValorTroco); } this._repositorio.Salvar(caixa); } catch (NullReferenceException) { throw new ExcecaoNenhumCaixaAberto(); } }
public DTORecebimentoCaixa CalcularRecebimento(DTORecebimentoCaixa dto) { DTORecebimentoCaixa dtoRetorno = new DTORecebimentoCaixa(); dtoRetorno.ValorDinheiro = dto.ValorDinheiro; dtoRetorno.ValorCartaoCredito = dto.ValorCartaoCredito; dtoRetorno.ValorCartaoDebito = dto.ValorCartaoDebito; dtoRetorno.ValorSoma = (dto.ValorDinheiro + dto.ValorCartaoCredito + dto.ValorCartaoDebito); dtoRetorno.ValorRestante = (dto.ValorReceber - dtoRetorno.ValorSoma); if (dtoRetorno.ValorRestante < 0) { dtoRetorno.ValorTroco = Decimal.Negate(dtoRetorno.ValorRestante); dtoRetorno.ValorRestante = 0; } return(dtoRetorno); }
private void AtualizarVisao(DTORecebimentoCaixa dto) { this._visao.SetValorDinheiro(dto.ValorDinheiro); this._visao.SetValorCartaoCredito(dto.ValorCartaoCredito); this._visao.SetValorCartaoDebito(dto.ValorCartaoDebito); this._visao.SetValorSoma(dto.ValorSoma); if (dto.ValorTroco > 0) { this._visao.HabilitarBotoesRestante(false); this._visao.AlterarParaTroco(); this._visao.SetValorTroco(dto.ValorTroco); this._visao.HabilitarBotaoReceber(true); } else { this._visao.HabilitarBotoesRestante((dto.ValorRestante > 0)); this._visao.HabilitarBotaoReceber(dto.ValorRestante.Equals(0)); this._visao.AlterarParaFaltam(); this._visao.SetValorRestante(dto.ValorRestante); } }