#encoding: utf-8 require "spec_helper" describe BrDanfe::Xprod do let(:xml_fci) do xml = <<-eos MONITOR DE ARCO ELETRICO 12232531-74B2-4FDD-87A6-CF0AD3E55386 eos Nokogiri::XML(xml) end let(:xml_st) do xml = <<-eos MONITOR DE ARCO ELETRICO 96.73 56.00 479.82 17.00 29.28 eos Nokogiri::XML(xml) end let(:xml_infAdProd) do xml = <<-eos MONITOR DE ARCO ELETRICO Informações adicionais do produto eos Nokogiri::XML(xml) end let(:xml_IFC_ST_infAdProd) do xml = <<-eos MONITOR DE ARCO ELETRICO 12232531-74B2-4FDD-87A6-CF0AD3E55386 96.73 56.00 479.82 17.00 29.28 Informações adicionais do produto eos Nokogiri::XML(xml) end describe ".generate" do context "when have FCI" do it "returns product + FCI" do expected = "MONITOR DE ARCO ELETRICO" expected += "\n" expected +="FCI: 12232531-74B2-4FDD-87A6-CF0AD3E55386" expect(BrDanfe::Xprod.generate(xml_fci)).to eq expected end end context "when have ST" do it "returns product + ST" do expected = "MONITOR DE ARCO ELETRICO" expected += "\n" expected += "ST: MVA: 56.00% * Alíq: 17.00% * BC: 479.82 * Vlr: 29.28" expect(BrDanfe::Xprod.generate(xml_st)).to eq expected end end context "when have infAdProd" do it "returns product + infAdProd" do expected = "MONITOR DE ARCO ELETRICO" expected += "\n" expected += "Informações adicionais do produto" expect(BrDanfe::Xprod.generate(xml_infAdProd)).to eq expected end end context "when have FCI + ST + infAdProd" do it "returns product + FCI + ST + infAdProd" do expected = "MONITOR DE ARCO ELETRICO" expected += "\n" expected += "Informações adicionais do produto" expected += "\n" expected +="FCI: 12232531-74B2-4FDD-87A6-CF0AD3E55386" expected += "\n" expected += "ST: MVA: 56.00% * Alíq: 17.00% * BC: 479.82 * Vlr: 29.28" expect(BrDanfe::Xprod.generate(xml_IFC_ST_infAdProd)).to eq expected end end end end