#encoding: utf-8 require "spec_helper" describe RubyDanfe::Descricao do LINEBREAK = "\n" 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_veicProd) do xml = <<-eos MOTOCICLETA 32A1SF354S6FASD213ASD5 PRETA DSA5DA-321503 2018 2018 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 string = "MONITOR DE ARCO ELETRICO" string += LINEBREAK string +="FCI: 12232531-74B2-4FDD-87A6-CF0AD3E55386" expect(RubyDanfe::Descricao.generate(xml_fci)).to eq string end end context "when have ST" do it "returns product + ST" do string = "MONITOR DE ARCO ELETRICO" string += LINEBREAK string += "ST: MVA: 56.00% " string += "* Alíq: 17.00% " string += "* BC: 479.82 " string += "* Vlr: 29.28" expect(RubyDanfe::Descricao.generate(xml_st)).to eq string end end context "when have infAdProd" do it "returns product + infAdProd" do string = "MONITOR DE ARCO ELETRICO" string += LINEBREAK string += "Informações adicionais do produto" expect(RubyDanfe::Descricao.generate(xml_infAdProd)).to eq string end end context "when have veicProd" do it "returns product + veicProd" do string = "MOTOCICLETA" string += LINEBREAK string += "Chassi: 32A1SF354S6FASD213ASD5 " string += "Motor: DSA5DA-321503 " string += "AnoFab: 2018 " string += "AnoMod: 2018 " string += "Cor: PRETA" expect(RubyDanfe::Descricao.generate(xml_veicProd)).to eq string end end context "when have FCI + ST + infAdProd" do it "returns product + FCI + ST + infAdProd" do string = "MONITOR DE ARCO ELETRICO" string += LINEBREAK string += "Informações adicionais do produto" string += LINEBREAK string +="FCI: 12232531-74B2-4FDD-87A6-CF0AD3E55386" string += LINEBREAK string += "ST: MVA: 56.00% " string += "* Alíq: 17.00% " string += "* BC: 479.82 " string += "* Vlr: 29.28" expect(RubyDanfe::Descricao.generate(xml_IFC_ST_infAdProd)).to eq string end end end end