public void Devo_Conseguir_Obter_O_Caixa_Aberto_Atual_Com_Os_Valores_De_Saldo_Detalhado()
        {
            var caixa = new Mock<Caixa>();
            caixa.Setup(c => c.EstaAberto).Returns(true);
            caixa.Setup(c => c.DataAbertura).Returns(DateTime.Now);

            caixa.Setup(c => c.SaldoAbertura).Returns(100);
            caixa.Setup(c => c.TotalAtendimentosDinheiro).Returns(3000);
            caixa.Setup(c => c.TotalSangrias).Returns(300);
            caixa.Setup(c => c.TotalReforcos).Returns(100);
            caixa.Setup(c => c.TotalTrocos).Returns(100);

            caixa.Setup(c => c.SaldoDinheiro).Returns(2900);
            caixa.Setup(c => c.SaldoCartaoCredito).Returns(232);
            caixa.Setup(c => c.SaldoCartaoDebito).Returns(87);
            caixa.Setup(c => c.SaldoGeral).Returns(3219);

            var repositorioCaixa = new Mock<ICaixaRepositorio>();
            repositorioCaixa.Setup(r => r.ObterUltimoCaixaAberto())
                            .Returns(caixa.Object);

            IFachadaCaixa fachada = new FachadaCaixa(repositorioCaixa.Object);
            DTOCaixa dto = fachada.ObterCaixaAtual();

            Assert.IsTrue(dto.EstaAberto);
            Assert.AreEqual(DateTime.Today, dto.DataAbertura.Date);
            Assert.AreEqual(100m, dto.SaldoAbertura);
            Assert.AreEqual(3000m, dto.TotalAtendimentosDinheiro);
            Assert.AreEqual(300m, dto.TotalSangrias);
            Assert.AreEqual(100m, dto.TotalReforcos);
            Assert.AreEqual(2900m, dto.SaldoDinheiro);
            Assert.AreEqual(232m, dto.SaldoCartaoCredito);
            Assert.AreEqual(87m, dto.SaldoCartaoDebito);
            Assert.AreEqual(3219m, dto.SaldoGeral);
            Assert.AreEqual(100, dto.TotalTrocos);
        }
        public void Nao_Devo_Conseguir_Obter_O_Caixa_Atual_Aberto_Se_Nao_Houver_Nenhum_Caixa_Aberto()
        {
            var repositorioCaixa = new Mock<ICaixaRepositorio>();
            repositorioCaixa.Setup(r => r.ObterUltimoCaixaAberto())
                            .Returns<Caixa>(null);

            IFachadaCaixa fachada = new FachadaCaixa(repositorioCaixa.Object);
            DTOCaixa dto = fachada.ObterCaixaAtual();
        }