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); }
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)); }