Beispiel #1
0
        public void SetUp()
        {
            email = new Mock <EnviadorDeEmail>();
            dao   = new Mock <NotaFiscalDao>();

            gerador = new GeradorDeNotaFiscal(email.Object, dao.Object);
        }
Beispiel #2
0
 private static void Acoplamento()
 {
     var listaDeAcoes = new List <IAcaoAposGerarNota>()
     {
         new EnviadorDeEmail(), new NotaFiscalDao()
     };
     var geradorDeNotaFiscal = new GeradorDeNotaFiscal(listaDeAcoes);
     var fatura = new Cap2.Fatura(200);
     var nf     = geradorDeNotaFiscal.Gera(fatura);
 }
Beispiel #3
0
        public void DeveGerarNFComValorDeImpostoDescontadoPara3900()
        {
            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(new List <IAcaoAposGerarNota>());

            Pedido pedido = new Pedido("Mauricio", 3900, 1);

            NotaFiscal nf = gerador.Gera(pedido);

            Assert.AreEqual(3900 * 0.92, nf.Valor);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        public void DeveGerarNFComValorDeImpostoDescontado()
        {
            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(new List <IAcaoAposGerarNota>(), new RelogioDoSistema());

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

            NotaFiscal nf = gerador.Gera(pedido);

            Assert.AreEqual(1000 * 0.94, nf.Valor);
        }
Beispiel #6
0
        public void DevePersistirNFGerada()
        {
            Mock <NFDao>        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));
        }
Beispiel #7
0
        public void DeveEnviarNFGeradaParaSAP()
        {
            Mock <NFDao>        dao     = new Mock <NFDao>();
            Mock <SAP>          sap     = new Mock <SAP>();
            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(dao.Object, sap.Object);

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

            NotaFiscal nf = gerador.Gera(pedido);

            dao.Verify(t => t.Persiste(nf));
            sap.Verify(t => t.Envia(nf));
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            var enviadorDeEmail = new EnviadorDeEmail();
            var notaFiscalDAL   = new NotaFiscalDAL();

            var geradorDeNotaFiscal = new GeradorDeNotaFiscal(enviadorDeEmail, notaFiscalDAL);

            var fatura = new Fatura(1099.99, "João");

            geradorDeNotaFiscal.Gera(fatura);

            Console.ReadKey();
        }
Beispiel #9
0
        public void DeveGerarNFParaSegundaSeDomingo()
        {
            Mock <IRelogio> date     = new Mock <IRelogio>();
            DateTime        fakeDate = new DateTime(year: 2019, month: 05, day: 19); // Esta data cai num domingo

            date.Setup(d => d.Hoje()).Returns(fakeDate.AddDays(1));

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(new List <IAcaoAposGerarNota>(), date.Object);

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

            NotaFiscal nf = gerador.Gera(pedido);

            Assert.AreEqual(DayOfWeek.Monday, nf.Data.DayOfWeek);
        }
Beispiel #10
0
        private static void TestaAula2Acoplamento()
        {
            var acoes = new List <IAcaoAposGerarNota>()
            {
                new NotaFiscalDao(),
                new EnviadorDeEmail(),
                new EnviadorDeSMS()
            };

            var gerador = new GeradorDeNotaFiscal(acoes);
            var fatura  = new Fatura(2000, "Fulano");
            var nf      = gerador.Gera(fatura);

            Console.ReadKey();
        }
Beispiel #11
0
        public void DeveGerarNFDuranteASemanaNormalmente()
        {
            Mock <IRelogio> date     = new Mock <IRelogio>();
            DateTime        fakeDate = new DateTime(year: 2019, month: 05, day: 15); // Esta data cai numa quarta-feira

            date.Setup(d => d.Hoje()).Returns(fakeDate);

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(new List <IAcaoAposGerarNota>(), date.Object);

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

            NotaFiscal nf = gerador.Gera(pedido);

            Assert.AreEqual(DayOfWeek.Wednesday, nf.Data.DayOfWeek);
        }
        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("Leonardo", 1000, 1);
            NotaFiscal nf = gerador.Gera(pedido);

            acao1.Verify(a => a.Executa(nf));
            acao2.Verify(a => a.Executa(nf));
        }
Beispiel #13
0
        public void DevePersistirNFGerada()
        {
            Mock <IAcaoAposGerarNota> dao = new Mock <IAcaoAposGerarNota>();

            IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>()
            {
                dao.Object
            };

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(acoes, new RelogioDoSistema());

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

            NotaFiscal nf = gerador.Gera(pedido);

            dao.Verify(t => t.Executa(nf));
        }
        public void DeveConsultarATabelaParaCalcularValor()
        {
            var tabela  = new Mock <ITabela>();
            var relogio = new Mock <IRelogio>();

            //definindo o futuro comportamento "ParaValor", que deve retornar 0.2 caso o valor seja 1000
            tabela.Setup(t => t.ParaValor(1000)).Returns(0.2);

            IList <IAcaoAposGerarNota> nenhumaAcao = new List <IAcaoAposGerarNota>();

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(nenhumaAcao, relogio.Object, tabela.Object);
            Pedido     pedido           = new Pedido("Leonardo", 1000, 1);
            NotaFiscal nf = gerador.Gera(pedido);

            tabela.Verify(t => t.ParaValor(1000.0));
            Assert.AreEqual(1000 * 0.2, nf.Valor, 0.00001);
        }
Beispiel #15
0
        static void Main(string[] args)
        {
            IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>();

            acoes.Add(new EnviadorDeEmail());
            acoes.Add(new NotaFiscalDAL());

            acoes.Add(new ERP());// Nova Acao

            var geradorDeNotaFiscal = new GeradorDeNotaFiscal(acoes);

            var fatura = new Fatura(1099.99, "João");

            geradorDeNotaFiscal.Gera(fatura);

            Console.ReadKey();
        }
Beispiel #16
0
        public void DeveConsultarATabelaParaCalcularValorIgualOuSuperiorA3000()
        {
            // mockando uma tabela, que ainda nem existe
            var tabela = new Mock <ITabela>();

            // definindo o futuro comportamento "paraValor", que deve retornar 0.08 caso o valor seja 3900.0
            tabela.Setup(t => t.ParaValor(3900.0)).Returns(0.08);

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(new List <IAcaoAposGerarNota>(), new RelogioDoSistema(), tabela.Object);

            Pedido pedido = new Pedido("Mauricio", 3900, 1);

            NotaFiscal nf = gerador.Gera(pedido);

            // garantindo que a tabela foi consultada
            tabela.Verify(t => t.ParaValor(3900.0));
            Assert.AreEqual(3900.0 * 0.08, nf.Valor);
        }
Beispiel #17
0
        public void DeveEnviarNFGeradaParaSAP()
        {
            Mock <IAcaoAposGerarNota> dao = new Mock <IAcaoAposGerarNota>();
            Mock <IAcaoAposGerarNota> sap = new Mock <IAcaoAposGerarNota>();

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

            GeradorDeNotaFiscal gerador = new GeradorDeNotaFiscal(acoes);

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

            NotaFiscal nf = gerador.Gera(pedido);

            dao.Verify(t => t.Executa(nf));
            sap.Verify(t => t.Executa(nf));
        }
Beispiel #18
0
        static void Main(string[] args)
        {
            Console.WriteLine("1.Coesao-SRP");

            var cargo       = new Desenvolvedor(new CinquentaPorcento());
            var funcionario = new Funcionario(cargo, 2.500);
            var resultado   = new CalculadoraDeSalario(funcionario).Calcula();

            Console.WriteLine(resultado);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("2.Acoplamento-Estabilidade");

            var listEventosAporGerarNota = new List <IAcaoAposGerarNota>();

            listEventosAporGerarNota.Add(new NotaFiscalDao());
            listEventosAporGerarNota.Add(new EnviadorDeEmail());

            var gerarNf = new GeradorDeNotaFiscal(listEventosAporGerarNota).Gera(new Acoplamento_Estabilidade.Fatura(200, "José"));

            Console.WriteLine(gerarNf.ValorBruto);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("3.OCP-DIP");

            var tabelaPreco    = new TabelaDePrecoPadrao();
            var servicoEntrega = new Frete();

            var calculadoraPreco = new CalculadoraDePrecos(tabelaPreco, servicoEntrega);
            var valorCalculado   = calculadoraPreco.Calcula(new Compra()
            {
                Cidade = new FreteCidadeSaoPaulo(), Valor = 100
            });

            Console.WriteLine(valorCalculado);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("4.Encapsulamento");

            IList <Boleto> boletos = new List <Boleto>();

            boletos.Add(new Boleto(200.00));
            boletos.Add(new Boleto(300.00));
            boletos.Add(new Boleto(350.00));

            Encapsulamento.Fatura fatura = new Encapsulamento.Fatura("Joseph", 900);

            ProcessadorDeBoletos pdb = new ProcessadorDeBoletos();

            pdb.Processa(boletos, fatura);

            Console.WriteLine(fatura.Pago);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("5.Heranca-LSP");

            IList <ContaComum> contas = new List <ContaComum>();
            var contaComum            = new ContaComum();

            contaComum.Deposita(100);
            contas.Add(contaComum);

            var contaComum2 = new ContaComum();

            contaComum2.Deposita(150);
            contas.Add(contaComum2);

            var contaEstudante = new ContaEstudante();

            contaEstudante.Deposita(100);
            contas.Add(contaEstudante);

            ProcessadorDeInvestimentos pi = new ProcessadorDeInvestimentos();

            pi.Processa(contas);

            Console.WriteLine("\n---------------------------\n");
        }
Beispiel #19
0
 public void Inicializa()
 {
     gerador = new GeradorDeNotaFiscal();
 }