public void SetUp() { email = new Mock <EnviadorDeEmail>(); dao = new Mock <NotaFiscalDao>(); gerador = new GeradorDeNotaFiscal(email.Object, dao.Object); }
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); }
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); }
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); }
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); }
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)); }
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)); }
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(); }
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); }
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(); }
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)); }
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); }
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(); }
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); }
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)); }
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"); }
public void Inicializa() { gerador = new GeradorDeNotaFiscal(); }