require "spec_helper" describe BrDanfe::DanfeLib::DetBody do let(:base_dir) { "./spec/fixtures/nfe/lib/"} let(:output_pdf) { "#{base_dir}output.pdf" } let(:pdf) { BrDanfe::DanfeLib::Document.new } let(:xml) { BrDanfe::DanfeLib::XML.new(xml_as_string) } subject { described_class.new(pdf, xml) } describe "#render" do before do subject.render File.delete(output_pdf) if File.exist?(output_pdf) end context "with CSOSN" do let(:xml_as_string) do <<-eos 1 Produto com CSOSN 101 - Nacional 12345678 5101 UN 2.0000 1.0100000000 2.02 0 101 2 Produto com CSOSN 102 - Estrangeiro 23456789 5101 UN 4.0000 1.0200000000 4.08 1 102 3 Produto Com Csosn 201 45678901 5401 UN 6.0000 1.0300000000 6.18 0 201 24.0000 7.66 17.0000 0.25 8 Produto com CSOSN 900 - Com ICMS 34567890 5201 UN 16.0000 1.0800000000 17.28 0 900 9.87 8.76 7.65 eos end it "renders xml to the pdf" do expect(File.exist?(output_pdf)).to be_falsey pdf.render_file output_pdf expect("#{base_dir}det_body#render-csosn.pdf").to have_same_content_of file: output_pdf end end context "with CST" do let(:xml_as_string) do <<-eos REF 04 Produto com CST 00 - Nacional - ICMS - IPI 90303329 00 5101 PC 1.00 49.23 49.23 98001921 10 0 00 3 49.23 12.00 5.90 999 50 49.23 5.00 2.46 REF 05 Produto com CST 00 - Estrangeiro - ICMS - IPI 90303329 00 5101 PC 1.00 49.23 49.23 98001921 10 1 00 3 49.23 12.00 5.90 999 50 49.23 5.00 2.46 eos end it "renders xml to the pdf" do expect(File.exist?(output_pdf)).to be_falsey pdf.render_file output_pdf expect("#{base_dir}det_body#render-cst.pdf").to have_same_content_of file: output_pdf end end context "with FCI" do let(:xml_as_string) do <<-eos REF 06 Produto com FCI 90303329 00 5101 PC 1.00 49.23 49.23 12232531-74B2-4FDD-87A6-CF0AD3E55386 0 00 eos end it "renders xml to the pdf" do expect(File.exist?(output_pdf)).to be_falsey pdf.render_file output_pdf expect("#{base_dir}det_body#render-fci.pdf").to have_same_content_of file: output_pdf end end context "with ICMS ST" do let(:xml_as_string) do <<-eos 3 Produto Com Csosn 201 - ICMS ST 45678901 5401 UN 6.0000 1.0300000000 6.18 0 201 24.0000 7.66 17.0000 0.25 eos end it "renders xml to the pdf" do expect(File.exist?(output_pdf)).to be_falsey pdf.render_file output_pdf expect("#{base_dir}det_body#render-icms_st.pdf").to have_same_content_of file: output_pdf end end end end