require "spec_helper"
describe BrDanfe::DetBody do
let(:base_dir) { "./spec/fixtures/lib/"}
let(:output_pdf) { "#{base_dir}output.pdf" }
let(:pdf) { BrDanfe::Document.new }
let(:xml) { BrDanfe::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 be_same_file_as(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 be_same_file_as(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 be_same_file_as(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 be_same_file_as(output_pdf)
end
end
end
end