require "spec_helper"
describe BrDanfe::DanfeLib::Dest do
let(:path_of_expected_pdf) { "./spec/fixtures/nfe/lib/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
File.delete(path_of_expected_pdf) if File.exist?(path_of_expected_pdf)
subject.render
end
context "when nf-e's version is 2.00" do
let(:xml_as_string) do
<<-eos
2011-10-29
2011-10-30
15:32:45
82743287000880
Schneider Electric Brasil Ltda
Av da Saudade
1125
Frutal
Sala 01 e 02
3552403
SUMARE
SP
13171320
1058
BRASIL
1921046300
671008375110
eos
end
it "renders xml to the pdf" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-v2.00.pdf").to have_same_content_of file: path_of_expected_pdf
end
end
context "when nf-e's version is 3.10" do
let(:xml_as_string) do
<<-eos
2011-09-29T13:02:59+00:00
2011-09-30T12:32:45-03:00
82743287000880
Schneider Electric Brasil Ltda
Av da Saudade
1125
Frutal
Sala 01 e 02
3552403
SUMARE
SP
13171320
1058
BRASIL
1921046300
671008375110
eos
end
it "renders xml to the pdf" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-v3.10.pdf").to have_same_content_of file: path_of_expected_pdf
end
end
context "when nf-e's version is 4.00" do
let(:xml_as_string) do
<<-eos
2018-07-30T13:30:59+00:00
2018-07-30T14:32:45-03:00
82743287000880
Schneider Electric Brasil Ltda
Av da Saudade
1125
Frutal
Sala 01 e 02
3552403
SUMARE
SP
13171320
1058
BRASIL
1921046300
671008375110
eos
end
it "renders xml to the pdf" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-v4.00.pdf").to have_same_content_of file: path_of_expected_pdf
end
end
context "when recipient has CNPJ" do
let(:xml_as_string) do
<<-eos
71058884000183
eos
end
it "renders xml to the pdf" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-with_cnpj.pdf").to have_same_content_of file: path_of_expected_pdf
end
end
context "when recipient has CPF" do
let(:xml_as_string) do
<<-eos
48532557457
eos
end
it "renders xml to the pdf" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-with_cpf.pdf").to have_same_content_of file: path_of_expected_pdf
end
end
context "when recipient has IE" do
let(:xml_as_string) do
<<-eos
SP
671008375110
eos
end
it "renders xml to the pdf" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-with_ie.pdf").to have_same_content_of file: path_of_expected_pdf
end
end
context "when recipient doesn't have address complement" do
let(:xml_as_string) do
<<-eos
2011-09-29T13:02:59+00:00
2011-09-30T12:32:45-03:00
82743287000880
Schneider Electric Brasil Ltda
Av da Saudade
1125
Frutal
3552403
SUMARE
SP
13171320
1058
BRASIL
1921046300
671008375110
eos
end
it "renders xml to the pdf" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-without-address-complement.pdf")
.to have_same_content_of file: path_of_expected_pdf
end
end
context "when recipient address (xLgr + nro + xCpl) has more than 63 characters" do
let(:xml_as_string) do
<<-eos
2011-09-29T13:02:59+00:00
2011-09-30T12:32:45-03:00
82743287000880
Schneider Electric Brasil Ltda
Rua do governo do estado
1125
Em anexo ao super mercado maior do bairro
Frutal
3552403
SUMARE
SP
13171320
1058
BRASIL
1921046300
671008375110
eos
end
it "renders xml to pdf discarding the address of after 63 characters" do
expect(File.exist?(path_of_expected_pdf)).to eql false
pdf.render_file path_of_expected_pdf
expect("./spec/fixtures/nfe/lib/dest#render-with-address-bigger.pdf")
.to have_same_content_of file: path_of_expected_pdf
end
end
end
end