Exemplo n.º 1
0
        public void DeveMarcarFaturaComoPagaCasoBoletoUnicoPagueTudo()
        {
            ProcessadorDeBoletos processador = new ProcessadorDeBoletos();
            Fatura         fatura            = new Fatura("Cliente", 150.0);
            Boleto         b1      = new Boleto(150.0);
            IList <Boleto> boletos = new List <Boleto>()
            {
                b1
            };

            processador.Processa(boletos, fatura);

            Assert.IsTrue(fatura.Pago);
        }
Exemplo n.º 2
0
        public void DeveMarcarFaturaComoNaoPagaCasoBoletoUnicoTenhaValorInferiorDaFatura()
        {
            ProcessadorDeBoletos processador = new ProcessadorDeBoletos();
            Fatura         fatura            = new Fatura("Cliente", 150.0);
            Boleto         b1      = new Boleto(140.0);
            IList <Boleto> boletos = new List <Boleto>()
            {
                b1
            };

            processador.Processa(boletos, fatura);

            Assert.IsFalse(fatura.Pago);
        }
Exemplo n.º 3
0
        private static void Encapsulamento()
        {
            var boletos = new List <Boleto>
            {
                new Boleto(200), new Boleto(300), new Boleto(100)
            };

            var fatura = new Cap4.Fatura("Luis", 900);
            var pdb    = new ProcessadorDeBoletos();

            pdb.Processa(boletos, fatura);

            Console.WriteLine($"Status da fatura: {fatura.Pago}");
        }
Exemplo n.º 4
0
        public void DeveProcessarPagamentoViaBoletoUnico()
        {
            ProcessadorDeBoletos processador = new ProcessadorDeBoletos();
            Fatura         fatura            = new Fatura("Cliente", 150.0);
            Boleto         b1      = new Boleto(150.0);
            IList <Boleto> boletos = new List <Boleto>()
            {
                b1
            };

            processador.Processa(boletos, fatura);

            Assert.AreEqual(1, fatura.Pagamentos.Count);
            Assert.AreEqual(150.0, fatura.Pagamentos[0].Valor, 0.00001);
        }
Exemplo n.º 5
0
        public void DeveMarcarFaturaComoPagaCasoBoletosTenhamValorIgualDaFatura()
        {
            ProcessadorDeBoletos processador = new ProcessadorDeBoletos();
            Fatura         fatura            = new Fatura("Cliente", 150.0);
            Boleto         b1      = new Boleto(75.0);
            Boleto         b2      = new Boleto(75.0);
            IList <Boleto> boletos = new List <Boleto>()
            {
                b1, b2
            };

            processador.Processa(boletos, fatura);

            Assert.IsTrue(fatura.Pago);
        }
Exemplo n.º 6
0
        public void DeveMarcarFaturaComoPagaCasoValorTotalDeVariosBoletosPagueValorSuperiorAoDaFatura()
        {
            ProcessadorDeBoletos processador = new ProcessadorDeBoletos();

            Fatura         fatura  = new Fatura("Cliente", 300.0);
            Boleto         b1      = new Boleto(200.0);
            Boleto         b2      = new Boleto(200.0);
            IList <Boleto> boletos = new List <Boleto>()
            {
                b1, b2
            };

            processador.Processa(boletos, fatura);

            Assert.IsTrue(fatura.Pago);
        }
Exemplo n.º 7
0
        public void DeveProcessarPagamentoViaMuitosBoletos()
        {
            ProcessadorDeBoletos processador = new ProcessadorDeBoletos();
            Fatura         fatura            = new Fatura("Cliente", 300.0);
            Boleto         b1      = new Boleto(100.0);
            Boleto         b2      = new Boleto(200.0);
            IList <Boleto> boletos = new List <Boleto>()
            {
                b1, b2
            };

            processador.Processa(boletos, fatura);

            Assert.AreEqual(2, fatura.Pagamentos.Count);
            Assert.AreEqual(100.0, fatura.Pagamentos[0].Valor, 0.00001);
            Assert.AreEqual(200.0, fatura.Pagamentos[1].Valor, 0.00001);
        }
Exemplo n.º 8
0
        private static void TestaEncapsulamentoExemploProcessadorDeBoletos()
        {
            var boletos = new List <Boleto>()
            {
                new Boleto(500),
                new Boleto(200),
                new Boleto(350)
            };

            var fatura = new EFatura("Fulano", 1000);

            var processador = new ProcessadorDeBoletos();

            processador.Processa(boletos, fatura);

            Console.WriteLine(fatura.Pago ? "Pagou." : "Não pagou.");
            Console.ReadKey();
        }
Exemplo n.º 9
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");
        }