public void Devo_Conseguir_Criar_Valido()
        {
            decimal SaldoAbertura = 100m;
            Caixa caixa = new Caixa(SaldoAbertura);

            Assert.IsTrue(caixa.EstaAberto);
            Assert.AreEqual(DateTime.Today, caixa.DataAbertura.Date);
            Assert.AreEqual(100m, caixa.SaldoGeral);
        }
        public void Devo_Conseguir_Abrir_Um_Caixa_Fechado()
        {
            Caixa caixa = new Caixa(0);
            caixa.Fechar();
            caixa.Abrir();

            Assert.IsTrue(caixa.EstaAberto);
            Assert.AreEqual(DateTime.Today, caixa.DataAbertura.Date);
            Assert.AreEqual(DateTime.MinValue, caixa.DataFechamento);
        }
 public Dado_Um_Caixa()
 {
     // Instancializo um pequeno caixa para verificar se os valores irão bater.
     this._caixa = new Caixa(130);
     this._caixa.EfetuarSangria(30);
     this._caixa.EfetuarReforco(10);
     this._caixa.EfetuarReforco(50);
     this._caixa.ReceberAtendimentoCartaoCredito(150);
     this._caixa.ReceberAtendimentoCartaoCredito(150);
     this._caixa.ReceberAtendimentoCartaoDebito(100);
     this._caixa.ReceberAtendimentoCartaoDebito(100);
     this._caixa.ReceberAtendimentoCartaoDebito(1200);
 }
        public void Devo_Conseguir_Efetuar_Reforco()
        {
            Caixa caixa = new Caixa(0);
            caixa.EfetuarReforco(200);

            foreach(LancamentoCaixa l in caixa.Lancamentos)
            {
                Assert.AreEqual(200, l.Valor);
                Assert.AreEqual(TipoMovimentacaoLancamentoCaixa.Entrada, l.TipoMovimentacao);
                Assert.AreEqual(TipoPagamentoLancamentoCaixa.Dinheiro, l.TipoPagamento);
                Assert.AreEqual("REFORÇO", l.Descricao);
            }
        }
        public void Devo_Conseguir_Efetuar_Sangria()
        {
            Caixa caixa = new Caixa(201);
            caixa.EfetuarSangria(200);

            foreach (LancamentoCaixa l in caixa.Lancamentos)
            {
                if (l.Descricao.Equals("SALDO DE ABERTURA"))
                    continue;

                Assert.AreEqual(200, l.Valor);
                Assert.AreEqual(TipoMovimentacaoLancamentoCaixa.Saida, l.TipoMovimentacao);
                Assert.AreEqual(TipoPagamentoLancamentoCaixa.Dinheiro, l.TipoPagamento);
                Assert.AreEqual("SANGRIA", l.Descricao);
            }
        }
Exemple #6
0
        public Boolean AbrirNovoCaixa(Decimal SaldoAbertura)
        {
            Caixa caixaAnteriorAberto = this._repositorio.ObterUltimoCaixaAberto();

            if (caixaAnteriorAberto != null)
                throw new ExcecaoCaixaAnteriorAberto();

            Caixa novoCaixa = new Caixa(SaldoAbertura);

            try
            {
                this._repositorio.Salvar(novoCaixa);
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        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 Devo_Obter_Valor_Restante_Zerado_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(0, dtoRetorno.ValorRestante);
        }
        public void Se_Nao_Possuir_Lancamentos_Saldo_Deve_Retornar_Zerado()
        {
            Caixa caixa = new Caixa(0);

            Assert.IsTrue(caixa.EstaAberto);
            Assert.AreEqual(DateTime.Today, caixa.DataAbertura.Date);
            Assert.AreEqual(0, caixa.SaldoGeral);
        }
Exemple #10
0
 public void Nao_Devo_Conseguir_Receber_Atendimento_Pago_Em_Dinheiro_Com_Valor_Invalido()
 {
     Caixa caixa = new Caixa(0);
     try
     {
         caixa.ReceberAtendimentoEmDinheiro(0);
     }
     catch (ExcecaoParametroInvalido ex)
     {
         if (ex.Message.Equals("valor"))
         {
             try
             {
                 caixa.ReceberAtendimentoEmDinheiro(-12m);
             }
             catch (ExcecaoParametroInvalido e)
             {
                 if (e.Message.Equals("valor"))
                     throw new ExcecaoParametroInvalido("valor");
             }
         }
     }
 }
Exemple #11
0
 public void Nao_Devo_Conseguir_Efetuar_Uma_Saida_Para_Troco_Se_O_Valor_Do_Troco_For_Maior_Que_O_Saldo_Em_Dinheiro()
 {
     Caixa caixa = new Caixa(100m);
     caixa.EfetuarSaidaParaTroco(125m);
 }
Exemple #12
0
 public void Nao_Devo_Conseguir_Efetuar_Uma_Saida_Para_Troco_Invalida()
 {
     Caixa caixa = new Caixa(100);
     try
     {
         caixa.EfetuarSaidaParaTroco(0);
     }
     catch (ExcecaoParametroInvalido ex)
     {
         if (ex.Message.Equals("valor"))
             caixa.EfetuarSaidaParaTroco(-1);
     }
 }
Exemple #13
0
 public void Nao_Devo_Conseguir_Efetuar_Sangria_Invalida()
 {
     Caixa caixa = new Caixa(0);
     try
     {
         caixa.EfetuarSangria(-200);
     }
     catch (ExcecaoParametroInvalido ex)
     {
         if (ex.Message.Equals("valor"))
         {
             try
             {
                 caixa.EfetuarSangria(0);
             }
             catch (ExcecaoParametroInvalido e)
             {
                 if (e.Message.Equals("valor"))
                     throw new ExcecaoParametroInvalido(ex.Message);
             }
         }
     }
 }
        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);
        }
Exemple #15
0
 public void Nao_Devo_Conseguir_Criar_Com_Saldo_Negativo()
 {
     Caixa caixa = new Caixa(-1);
 }
Exemple #16
0
        public void Devo_Conseguir_Receber_Atendimento_Pago_Em_Dinheiro()
        {
            Caixa caixa = new Caixa(100);
            caixa.ReceberAtendimentoEmDinheiro(15.25m);

            Assert.AreEqual(115.25m, caixa.SaldoGeral);
            Assert.AreEqual(15.25m, caixa.TotalAtendimentosDinheiro);
        }
Exemple #17
0
        public void Devo_Conseguir_Receber_Atendimento_Pago_Com_Cartao_Debito()
        {
            Caixa caixa = new Caixa(100);
            caixa.ReceberAtendimentoCartaoDebito(15.25m);

            Assert.AreEqual(115.25m, caixa.SaldoGeral);
            Assert.AreEqual(15.25m, caixa.SaldoCartaoDebito);
        }
Exemple #18
0
        public void Devo_Conseguir_Fechar()
        {
            Caixa caixa = new Caixa(100);
            caixa.Fechar();

            Assert.IsFalse(caixa.EstaAberto);
            Assert.AreEqual(DateTime.Now, caixa.DataFechamento);
        }
Exemple #19
0
        public void Devo_Conseguir_Efetuar_Uma_Saida_Para_Troco()
        {
            Caixa caixa = new Caixa(100m);
            caixa.EfetuarSaidaParaTroco(90);

            Assert.AreEqual(90, caixa.TotalTrocos);
            Assert.AreEqual(10, caixa.SaldoDinheiro);
            Assert.AreEqual(10, caixa.SaldoGeral);
        }
        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);
        }
Exemple #21
0
 public void Nao_Devo_Conseguir_Efetuar_Sangria_Caso_O_Valor_Da_Sangria_For_Maior_Que_O_Saldo_Em_Dinheiro_Do_Caixa()
 {
     Caixa caixa = new Caixa(175);
     caixa.EfetuarSangria(200);
 }
        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);
        }