require 'spec_helper'
describe BrDanfe::DanfeLib::Infadic 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
let(:volumes_number) { 1 }
before do
subject.render(volumes_number)
File.delete(output_pdf) if File.exist?(output_pdf)
end
context 'when there is no information' do
let(:xml_as_string) do
<<-EOS
1
VOLUMES 1
DIVERSOS 1
1
1000.000
1100.000
2
VOLUMES 2
DIVERSOS 2
2
2000.000
2200.000
3
VOLUMES 3
DIVERSOS 3
3
3000.000
3300.000
4892.78
75394.78
EOS
end
it 'renders title with box, subtitle and fisco box on the pdf' do
expect(File.exist?(output_pdf)).to be_falsey
pdf.render_file output_pdf
expect("#{base_dir}infadic#render.pdf").to have_same_content_of file: output_pdf
end
end
context 'when has difal' do
let(:xml_as_string) do
<<-EOS
1
VOLUMES 1
DIVERSOS 1
1
1000.000
1100.000
2
VOLUMES 2
DIVERSOS 2
2
2000.000
2200.000
3
VOLUMES 3
DIVERSOS 3
3
3000.000
3300.000
4892.78
2915.78
75394.78
EOS
end
it 'renders title with box, subtitle, fisco box and difal on the pdf' do
expect(File.exist?(output_pdf)).to be_falsey
pdf.render_file output_pdf
expect("#{base_dir}infadic#render-difal.pdf").to have_same_content_of file: output_pdf
end
end
context 'when has too big address' 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
Em anexo ao super mercado maior do bairro
3552403
SUMARE
SP
13171320
1058
BRASIL
1921046300
671008375110
EOS
end
it 'renders title with box, subtitle, fisco box and address on the pdf' do
expect(File.exist?(output_pdf)).to be_falsey
pdf.render_file output_pdf
expect("#{base_dir}infadic#render-with_street_data.pdf").to have_same_content_of file: output_pdf
end
end
context 'when has complementary information' 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
1
VOLUMES 1
DIVERSOS 1
1
1000.000
1100.000
2
VOLUMES 2
DIVERSOS 2
2
2000.000
2200.000
3
VOLUMES 3
DIVERSOS 3
3
3000.000
3300.000
Uma observação
0.00
0.00
0.00
EOS
end
it 'renders title with box, subtitle, fisco box and complementary ' \
'information on the pdf' do
expect(File.exist?(output_pdf)).to be_falsey
pdf.render_file output_pdf
expect("#{base_dir}infadic#render-with_complementary_information.pdf").to have_same_content_of file: output_pdf
end
end
context 'when has additional fisco information' do
let(:xml_as_string) do
<<-EOS
Total de FCP-ST: 348,96
EOS
end
it 'renders title with box, subtitle, fisco box and additional information about fisco on the pdf' do
expect(File.exist?(output_pdf)).to be_falsey
pdf.render_file output_pdf
expect("#{base_dir}infadic#render-with_fisco_additional_information.pdf").to have_same_content_of file: output_pdf
end
end
context 'when has extra volume' 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
1
VOLUMES 1
DIVERSOS 1
1
1000.000
1100.000
2
VOLUMES 2
DIVERSOS 2
2
2000.000
2200.000
3
VOLUMES 3
DIVERSOS 3
3
3000.000
3300.000
0.00
0.00
0.00
EOS
end
let(:volumes_number) { 2 }
it 'renders title with box, subtitle, fisco box and extra volumes on the ' \
'pdf' do
expect(File.exist?(output_pdf)).to be_falsey
pdf.render_file output_pdf
expect("#{base_dir}infadic#render-extra_volume.pdf").to have_same_content_of file: output_pdf
end
end
context 'when has all the informations' do
let(:xml_as_string) do
<<-EOS
82743287000880
Schneider Electric Brasil Ltda
Av da Saudade
1125
Frutal
Em anexo ao super mercado maior do bairro
3552403
SUMARE
SP
13171320
1058
BRASIL
1921046300
671008375110
1
VOLUMES 1
DIVERSOS 1
1
1000.000
1100.000
2
VOLUMES 2
DIVERSOS 2
2
2000.000
2200.000
3
VOLUMES 3
DIVERSOS 3
3
3000.000
3300.000
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec congue in dolor sed sagittis.
Total de FCP-ST: 348,96
348.96
4892.78
2915.78
75394.78
EOS
end
let(:volumes_number) { 3 }
it 'renders title with box, subtitle, fisco box, extra volumes, ' \
'complementary information, address and difal on the pdf' do
expect(File.exist?(output_pdf)).to be_falsey
pdf.render_file output_pdf
expect("#{base_dir}infadic#render-all_the_informations.pdf").to have_same_content_of file: output_pdf
end
end
end
end