public void DeveInvocarAcoesPosterioresERelogioDoSistemaTambem()
        {
            var acao1 = new Mock <IAcaoAposGerarNota>();
            var acao2 = new Mock <IAcaoAposGerarNota>();

            IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>()
            {
                acao1.Object, acao2.Object
            };

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(acoes, new RelogioDoSistema());
            Pedido pedido = new Pedido("Mauricio", 1000, 1);

            NotaFiscal nf = gerador.Gera(pedido);

            // Testando que nunca será gerado NF no Sábado ou Domingo
            Assert.AreNotEqual(nf.Data.DayOfWeek, DayOfWeek.Saturday);
            Assert.AreNotEqual(nf.Data.DayOfWeek, DayOfWeek.Sunday);

            // Testando dia atual - Testado Numa Segunda(Monday)
            //Assert.AreEqual(nf.Data.DayOfWeek, DayOfWeek.Monday);

            acao1.Verify(a => a.Executa(nf));
            acao2.Verify(a => a.Executa(nf));
        }
        public void DeveGerarNFComValorDeImpostoDescontado()
        {
            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal();
            Pedido pedido = new Pedido("Mauricio", 1000, 1);

            NotaFiscal nf = gerador.Gera(pedido);

            Assert.AreEqual(1000 * 0.94, nf.Valor, 0.0001);
        }
Example #3
0
        public void DevePersistirNFGerada()
        {
            //criando o Mock
            var dao = new Mock <NFDAO>();

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(dao.Object);
            Pedido pedido = new Pedido("Mauricio", 1000, 1);

            NotaFiscal nf = gerador.Gera(pedido);

            dao.Verify(t => t.Persiste(nf));
        }
        public void DeveConsultarATabelaParaCalcularValor()
        {
            // mockando uma tabela, que ainda não existe
            var tabela = new Mock <ITabela>();

            tabela.Setup(t => t.ParaValor(1000.0)).Returns(0.2);

            IList <IAcaoAposGerarNota> nenhumaAcao = new List <IAcaoAposGerarNota>();
            GeradorDeNotaFiscal        gerador     = new GeradorDeNotaFiscal(nenhumaAcao, new RelogioDoSistema(), tabela.Object);
            Pedido pedido = new Pedido("Mauricio", 1000, 1);

            NotaFiscal nf = gerador.Gera(pedido);

            //garantindo que a tabela foi consultada
            tabela.Verify(t => t.ParaValor(1000.0));
            Assert.AreEqual(1000 * 0.2, nf.Valor, 0000.1);
        }
        public void DeveInvocarAcoesPosteriores()
        {
            var acao1 = new Mock <IAcaoAposGerarNota>();
            var acao2 = new Mock <IAcaoAposGerarNota>();

            IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>()
            {
                acao1.Object, acao2.Object
            };

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(acoes);
            Pedido pedido = new Pedido("Mauricio", 1000, 1);

            NotaFiscal nf = gerador.Gera(pedido);

            acao1.Verify(a => a.Executa(nf));
            acao2.Verify(a => a.Executa(nf));
        }