public void GerarNotaFiscal_PedidoValido_NotaFiscalGerada() { // Arrange var pedidoItem = new PedidoItem { Brinde = true, CodigoProduto = "123", NomeProduto = "NomeProduto", ValorItemPedido = 100 }; var pedido = new Pedido { EstadoDestino = "SP", EstadoOrigem = "MG", NomeCliente = "NomeCliente", ItensDoPedido = new List <PedidoItem> { pedidoItem } }; // Act var notaFiscal = NotaFiscal.New(pedido); // Assert Assert.NotNull(notaFiscal); Assert.NotEmpty(notaFiscal.ItensNotaFiscal); }
public void CriarNotaFiscalItem_PedidoItemVazio_ExcecaoCamposObrigatorios() { // Arrange var pedidoItem = new PedidoItem { Brinde = true, CodigoProduto = "123", NomeProduto = "NomeProduto", ValorItemPedido = 100 }; var pedido = new Pedido { EstadoDestino = "MG", EstadoOrigem = "RJ", NomeCliente = "NomeCliente", ItensDoPedido = new List <PedidoItem> { pedidoItem } }; var notaFiscal = NotaFiscal.New(pedido); // Act var exception = Record.Exception(() => NotaFiscalItem.New(notaFiscal, new PedidoItem())); // Assert Assert.NotNull(exception); }
public void CriarNotaFiscalItem_EstadoDestinoSudeste_AplicarDesconto() { // Arrange var pedidoItem = new PedidoItem { Brinde = true, CodigoProduto = "123", NomeProduto = "NomeProduto", ValorItemPedido = 100 }; var pedido = new Pedido { EstadoDestino = "MG", // Sudeste EstadoOrigem = "RJ", NomeCliente = "NomeCliente", ItensDoPedido = new List <PedidoItem> { pedidoItem } }; // Act var notaFiscal = NotaFiscal.New(pedido); // Assert var notaFiscalItem = notaFiscal.ItensNotaFiscal.Last(); Assert.NotNull(notaFiscalItem); Assert.Equal(0.10, notaFiscalItem.Desconto); }
public void CalcularIcms_Cfop6009_ReducaoBaseAplicada() { // Arrange var pedido = NotaFiscalTest.NovoPedido(); pedido.EstadoOrigem = "SP"; pedido.EstadoDestino = "SE"; var novoPedidoItem = new PedidoItem { Brinde = false, CodigoProduto = "123", NomeProduto = "X", ValorItemPedido = 1000 }; var notaFiscal = NotaFiscal.New(pedido); var cfop = new Cfop(notaFiscal.EstadoOrigem, notaFiscal.EstadoDestino).Value(); // 6.009 // Act var icms = new ImpostoIcms(notaFiscal, novoPedidoItem, cfop); // Assert Assert.NotNull(icms); Assert.Equal("10", icms.Tipo); Assert.Equal(0.17, icms.Aliquota); Assert.Equal(1000 * 0.17 * 0.9, icms.Valor); }
public void CalcularIcms_PedidoItemBrinde_TipoAliquotaDefinidosBrinde() { // Arrange var pedido = NotaFiscalTest.NovoPedido(); pedido.EstadoOrigem = "SP"; pedido.EstadoDestino = "RJ"; var novoPedidoItem = new PedidoItem { Brinde = true, CodigoProduto = "123", NomeProduto = "X", ValorItemPedido = 1000 }; var notaFiscal = NotaFiscal.New(pedido); var cfop = new Cfop(notaFiscal.EstadoOrigem, notaFiscal.EstadoDestino).Value(); // Act var icms = new ImpostoIcms(notaFiscal, novoPedidoItem, cfop); // Assert Assert.NotNull(icms); Assert.Equal("60", icms.Tipo); Assert.Equal(0.18, icms.Aliquota); Assert.Equal(1000 * 0.18, icms.Valor); }
public void GerarNotaFiscal_PedidoVazio_ExcecaoCamposObrigatorios() { // Arrange var pedido = new Pedido(); // Act var exception = Record.Exception(() => NotaFiscal.New(pedido)); // Assert Assert.NotNull(exception); }
public void CalcularIpi_PedidoItemNaoBrinde_AliquotaDefinidosNaoBrinde() { // Arrange var pedido = NotaFiscalTest.NovoPedido(); pedido.EstadoOrigem = "SP"; pedido.EstadoDestino = "RJ"; var novoPedidoItem = new PedidoItem { Brinde = false, CodigoProduto = "123", NomeProduto = "X", ValorItemPedido = 1000 }; var notaFiscal = NotaFiscal.New(pedido); // Act var ipi = new ImpostoIpi(notaFiscal, novoPedidoItem); // Assert Assert.NotNull(ipi); Assert.Equal(0.10, ipi.Aliquota); Assert.Equal(1000 * 0.10, ipi.Valor); }