br_danfe 0.20.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +1 -1
  3. data/Gemfile.lock +1 -1
  4. data/config/locales/pt-BR.yml +15 -0
  5. data/lib/br_danfe/danfe_lib/nfe.rb +5 -3
  6. data/lib/br_danfe/danfe_lib/nfe_lib/dest.rb +1 -1
  7. data/lib/br_danfe/danfe_lib/nfe_lib/det_body.rb +6 -1
  8. data/lib/br_danfe/danfe_lib/nfe_lib/dup.rb +8 -4
  9. data/lib/br_danfe/danfe_lib/nfe_lib/entrega.rb +86 -0
  10. data/lib/br_danfe/danfe_lib/nfe_lib/helper.rb +4 -4
  11. data/lib/br_danfe/danfe_lib/nfe_lib/icmstot.rb +8 -4
  12. data/lib/br_danfe/danfe_lib/nfe_lib/infadic.rb +3 -19
  13. data/lib/br_danfe/danfe_lib/nfe_lib/issqn.rb +4 -2
  14. data/lib/br_danfe/danfe_lib/nfe_lib/transp.rb +8 -4
  15. data/lib/br_danfe/danfe_lib/nfe_lib/vol.rb +6 -2
  16. data/lib/br_danfe/version.rb +1 -1
  17. data/spec/br_danfe/danfe_lib/nfe_lib/det_body_spec.rb +73 -0
  18. data/spec/br_danfe/danfe_lib/nfe_lib/dup_spec.rb +50 -0
  19. data/spec/br_danfe/danfe_lib/nfe_lib/entrega_spec.rb +186 -0
  20. data/spec/br_danfe/danfe_lib/nfe_lib/helper_spec.rb +23 -4
  21. data/spec/br_danfe/danfe_lib/nfe_lib/icmstot_spec.rb +46 -0
  22. data/spec/br_danfe/danfe_lib/nfe_lib/infadic_spec.rb +0 -41
  23. data/spec/br_danfe/danfe_lib/nfe_lib/issqn_spec.rb +49 -0
  24. data/spec/br_danfe/danfe_lib/nfe_lib/transp_spec.rb +49 -0
  25. data/spec/br_danfe/danfe_lib/nfe_lib/vol_spec.rb +59 -0
  26. data/spec/br_danfe/danfe_lib/nfe_spec.rb +11 -0
  27. data/spec/fixtures/nfe/lib/det_body#render-with_entrega.pdf +1110 -0
  28. data/spec/fixtures/nfe/lib/dup#render-with_entrega.pdf +0 -0
  29. data/spec/fixtures/nfe/lib/entrega#render-v2.00.pdf +0 -0
  30. data/spec/fixtures/nfe/lib/entrega#render-with-address-bigger.pdf +0 -0
  31. data/spec/fixtures/nfe/lib/entrega#render-with_cpf.pdf +0 -0
  32. data/spec/fixtures/nfe/lib/entrega#render-without-address-complement.pdf +0 -0
  33. data/spec/fixtures/nfe/lib/icmstot#render-with_entrega.pdf +0 -0
  34. data/spec/fixtures/nfe/lib/infadic#render-all_the_informations.pdf +0 -0
  35. data/spec/fixtures/nfe/lib/issqn#render-with_entrega.pdf +0 -0
  36. data/spec/fixtures/nfe/lib/transp#render-with_entrega.pdf +0 -0
  37. data/spec/fixtures/nfe/lib/vol#render-with_entrega.pdf +0 -0
  38. data/spec/fixtures/nfe/v2.00/nfe_with_entrega.xml +260 -0
  39. data/spec/fixtures/nfe/v2.00/nfe_with_entrega.xml.fixture.pdf +3413 -0
  40. metadata +20 -6
@@ -0,0 +1,186 @@
1
+ require 'spec_helper'
2
+
3
+ describe BrDanfe::DanfeLib::NfeLib::Entrega do
4
+ let(:path_of_expected_pdf) { './spec/fixtures/nfe/lib/output.pdf' }
5
+
6
+ let(:pdf) { BrDanfe::DanfeLib::NfeLib::Document.new }
7
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
8
+
9
+ subject { described_class.new(pdf, xml) }
10
+
11
+ describe '#render' do
12
+ before do
13
+ subject.render
14
+ File.delete(path_of_expected_pdf) if File.exist?(path_of_expected_pdf)
15
+ end
16
+
17
+ context "when nf-e's version is 2.00" do
18
+ let(:xml_as_string) do
19
+ <<~XML
20
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
21
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
22
+ <ide>
23
+ <dEmi>2011-10-29</dEmi>
24
+ <dSaiEnt>2011-10-30</dSaiEnt>
25
+ <hSaiEnt>15:32:45</hSaiEnt>
26
+ </ide>
27
+ <entrega>
28
+ <CNPJ>82743287000880</CNPJ>
29
+ <xNome>Schneider Electric Brasil Ltda</xNome>
30
+ <xLgr>Av da Saudade</xLgr>
31
+ <nro>1125</nro>
32
+ <xBairro>Frutal</xBairro>
33
+ <xCpl>Sala 01 e 02</xCpl>
34
+ <cMun>3552403</cMun>
35
+ <xMun>SUMARE</xMun>
36
+ <UF>SP</UF>
37
+ <CEP>13171320</CEP>
38
+ <fone>1921046300</fone>
39
+ <IE>671008375110</IE>
40
+ </entrega>
41
+ </infNFe>
42
+ </NFe>
43
+ XML
44
+ end
45
+
46
+ it 'renders xml to the pdf' do
47
+ expect(File.exist?(path_of_expected_pdf)).to be false
48
+
49
+ pdf.render_file path_of_expected_pdf
50
+
51
+ expect('./spec/fixtures/nfe/lib/entrega#render-v2.00.pdf').to have_same_content_of file: path_of_expected_pdf
52
+ end
53
+ end
54
+
55
+ context 'when entrega has CPF' do
56
+ let(:xml_as_string) do
57
+ <<~XML
58
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
59
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="3.10">
60
+ <entrega>
61
+ <CPF>48532557457</CPF>
62
+ <xNome>Schneider Electric Brasil Ltda</xNome>
63
+ <xLgr>Av da Saudade</xLgr>
64
+ <nro>1125</nro>
65
+ <xBairro>Frutal</xBairro>
66
+ <xCpl>Sala 01 e 02</xCpl>
67
+ <cMun>3552403</cMun>
68
+ <xMun>SUMARE</xMun>
69
+ <UF>SP</UF>
70
+ <CEP>13171320</CEP>
71
+ <fone>1921046300</fone>
72
+ </entrega>
73
+ </infNFe>
74
+ </NFe>
75
+ XML
76
+ end
77
+
78
+ it 'renders xml to the pdf' do
79
+ expect(File.exist?(path_of_expected_pdf)).to be false
80
+
81
+ pdf.render_file path_of_expected_pdf
82
+
83
+ expect('./spec/fixtures/nfe/lib/entrega#render-with_cpf.pdf').to have_same_content_of file: path_of_expected_pdf
84
+ end
85
+ end
86
+
87
+ context 'when recipient address (xLgr + nro + xCpl) has more than 63 characters' do
88
+ let(:xml_as_string) do
89
+ <<~XML
90
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
91
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="3.10">
92
+ <ide>
93
+ <dhEmi>2018-07-30T13:30:59+00:00</dhEmi>
94
+ <dhSaiEnt>2018-07-30T14:32:45-03:00</dhSaiEnt>
95
+ </ide>
96
+ <entrega>
97
+ <CNPJ>82743287000880</CNPJ>
98
+ <xNome>Schneider Electric Brasil Ltda</xNome>
99
+ <xLgr>Rua do governo do estado</xLgr>
100
+ <nro>1125</nro>
101
+ <xCpl>Em anexo ao super mercado maior do bairro</xCpl>
102
+ <xBairro>Frutal</xBairro>
103
+ <cMun>3552403</cMun>
104
+ <xMun>SUMARE</xMun>
105
+ <UF>SP</UF>
106
+ <CEP>13171320</CEP>
107
+ <cPais>1058</cPais>
108
+ <xPais>BRASIL</xPais>
109
+ <fone>1921046300</fone>
110
+ <IE>671008375110</IE>
111
+ </entrega>
112
+ </infNFe>
113
+ </NFe>
114
+ XML
115
+ end
116
+
117
+ it 'renders xml to pdf discarding the address of after 63 characters' do
118
+ expect(File.exist?(path_of_expected_pdf)).to be false
119
+
120
+ pdf.render_file path_of_expected_pdf
121
+
122
+ expect('./spec/fixtures/nfe/lib/entrega#render-with-address-bigger.pdf')
123
+ .to have_same_content_of file: path_of_expected_pdf
124
+ end
125
+ end
126
+ end
127
+
128
+ describe '.delivery_local' do
129
+ context 'when entrega/xLgr is present in the XML' do
130
+ let(:xml_with_address) do
131
+ <<~XML
132
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
133
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="3.10">
134
+ <dest>
135
+ <idEstrangeiro>123456789</idEstrangeiro>
136
+ <xNome>John Doe</xNome>
137
+ <enderDest>
138
+ <xLgr>Av. Bayer Filho</xLgr>
139
+ <nro>1999</nro>
140
+ <xBairro>Centro</xBairro>
141
+ <xMun>Tijucas</xMun>
142
+ <UF>SC</UF>
143
+ </enderDest>
144
+ </dest>
145
+ <entrega>
146
+ <CNPJ>82743287000880</CNPJ>
147
+ <xNome>Schneider Electric Brasil Ltda</xNome>
148
+ <xLgr>Rua do governo do estado</xLgr>
149
+ <nro>1125</nro>
150
+ <xCpl>Em anexo ao super mercado maior do bairro</xCpl>
151
+ <xBairro>Frutal</xBairro>
152
+ <cMun>3552403</cMun>
153
+ <xMun>SUMARE</xMun>
154
+ <UF>SP</UF>
155
+ <CEP>13171320</CEP>
156
+ <cPais>1058</cPais>
157
+ <xPais>BRASIL</xPais>
158
+ <fone>1921046300</fone>
159
+ <IE>671008375110</IE>
160
+ </entrega>
161
+ </infNFe>
162
+ </NFe>
163
+ XML
164
+ end
165
+
166
+ it 'returns true' do
167
+ expect(described_class.delivery_local?(xml_with_address)).to be true
168
+ end
169
+ end
170
+
171
+ context 'when entrega/xLgr is not present in the XML' do
172
+ let(:xml_without_entrega) do
173
+ <<~XML
174
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
175
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="3.10">
176
+ </infNFe>
177
+ </NFe>
178
+ XML
179
+ end
180
+
181
+ it 'returns false' do
182
+ expect(described_class.delivery_local?(xml_without_entrega)).to be false
183
+ end
184
+ end
185
+ end
186
+ end
@@ -76,7 +76,7 @@ describe BrDanfe::DanfeLib::NfeLib::Helper do
76
76
  end
77
77
 
78
78
  it 'returns the address with the street, number and complement' do
79
- expect(described_class.generate_address(xml_street))
79
+ expect(described_class.generate_address(xml_street, 'enderDest'))
80
80
  .to eq 'Rua do governo do estado 1125 - Em anexo ao super mercado maior do bairro'
81
81
  end
82
82
 
@@ -92,7 +92,7 @@ describe BrDanfe::DanfeLib::NfeLib::Helper do
92
92
  end
93
93
 
94
94
  it 'returns the address with the street and number' do
95
- expect(described_class.generate_address(xml_street))
95
+ expect(described_class.generate_address(xml_street, 'enderDest'))
96
96
  .to eq 'Rua do governo do estado 1125'
97
97
  end
98
98
  end
@@ -109,7 +109,7 @@ describe BrDanfe::DanfeLib::NfeLib::Helper do
109
109
  end
110
110
 
111
111
  it 'returns the address with the street only' do
112
- expect(described_class.generate_address(xml_street))
112
+ expect(described_class.generate_address(xml_street, 'enderDest'))
113
113
  .to eq 'Rua do governo do estado'
114
114
  end
115
115
  end
@@ -126,9 +126,28 @@ describe BrDanfe::DanfeLib::NfeLib::Helper do
126
126
  end
127
127
 
128
128
  it 'returns the address with the street and complement' do
129
- expect(described_class.generate_address(xml_street))
129
+ expect(described_class.generate_address(xml_street, 'enderDest'))
130
130
  .to eq 'Rua do governo do estado - Em anexo ao super mercado maior do bairro'
131
131
  end
132
132
  end
133
+
134
+ context 'when receive the path' do
135
+ let(:xml_entrega) do
136
+ <<~XML
137
+ <entrega>
138
+ <xLgr>Rua estadual</xLgr>
139
+ <nro>3341</nro>
140
+ <xCpl>Em anexo ao bairro</xCpl>
141
+ </entrega>
142
+ XML
143
+ end
144
+
145
+ let(:xml_street_entrega) { Nokogiri::XML(xml_entrega) }
146
+
147
+ it 'returns the address scoped by the given path' do
148
+ expect(described_class.generate_address(xml_street_entrega, 'entrega'))
149
+ .to eq 'Rua estadual 3341 - Em anexo ao bairro'
150
+ end
151
+ end
133
152
  end
134
153
  end
@@ -44,5 +44,51 @@ describe BrDanfe::DanfeLib::NfeLib::Icmstot do
44
44
 
45
45
  expect("#{base_dir}icmstot#render.pdf").to have_same_content_of file: output_pdf
46
46
  end
47
+
48
+ describe 'with entrega' do
49
+ let(:xml_as_string) do
50
+ <<~XML
51
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
52
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
53
+ <ICMSTot>
54
+ <vBC>1.23</vBC>
55
+ <vICMS>2.34</vICMS>
56
+ <vBCST>3.45</vBCST>
57
+ <vST>4.56</vST>
58
+ <vProd>5.67</vProd>
59
+ <vFrete>6.78</vFrete>
60
+ <vSeg>7.89</vSeg>
61
+ <vDesc>9.01</vDesc>
62
+ <vIPI>0.12</vIPI>
63
+ <vOutro>1.34</vOutro>
64
+ <vNF>4.35</vNF>
65
+ </ICMSTot>
66
+ <entrega>
67
+ <CNPJ>82743287000880</CNPJ>
68
+ <xNome>Schneider Electric Brasil Ltda</xNome>
69
+ <xLgr>Av da Saudade</xLgr>
70
+ <nro>1125</nro>
71
+ <xBairro>Frutal</xBairro>
72
+ <xCpl>Sala 01 e 02</xCpl>
73
+ <cMun>3552403</cMun>
74
+ <xMun>SUMARE</xMun>
75
+ <UF>SP</UF>
76
+ <CEP>13171320</CEP>
77
+ <fone>1921046300</fone>
78
+ <IE>671008375110</IE>
79
+ </entrega>
80
+ </infNFe>
81
+ </NFe>
82
+ XML
83
+ end
84
+
85
+ it 'renders xml to the pdf' do
86
+ expect(File.exist?(output_pdf)).to be_falsey
87
+
88
+ pdf.render_file output_pdf
89
+
90
+ expect("#{base_dir}icmstot#render-with_entrega.pdf").to have_same_content_of file: output_pdf
91
+ end
92
+ end
47
93
  end
48
94
  end
@@ -339,36 +339,6 @@ describe BrDanfe::DanfeLib::NfeLib::Infadic do
339
339
  end
340
340
  end
341
341
 
342
- context 'when has address shipment' do
343
- let(:xml_as_string) do
344
- <<~XML
345
- <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
346
- <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
347
- <entrega>
348
- <CNPJ>32301321907894</CNPJ>
349
- <CPF></CPF>
350
- <xLgr>Rua dos bobos</xLgr>
351
- <nro>0</nro>
352
- <xCpl>Na casa não tem parede</xCpl>
353
- <xBairro>Centro</xBairro>
354
- <cMun>4218004</cMun>
355
- <xMun>TIJUCAS</xMun>
356
- <UF>SC</UF>
357
- </entrega>
358
- </infNFe>
359
- </NFe>
360
- XML
361
- end
362
-
363
- it 'renders title with box, subtitle, fisco box and address shipment information on the pdf' do
364
- expect(File.exist?(output_pdf)).to be_falsey
365
-
366
- pdf.render_file output_pdf
367
-
368
- expect("#{base_dir}infadic#address-shipment.pdf").to have_same_content_of file: output_pdf
369
- end
370
- end
371
-
372
342
  context 'when has all the informations' do
373
343
  let(:xml_as_string) do
374
344
  <<~XML
@@ -418,17 +388,6 @@ describe BrDanfe::DanfeLib::NfeLib::Infadic do
418
388
  <pesoB>3300.000</pesoB>
419
389
  </vol>
420
390
  </transp>
421
- <entrega>
422
- <CNPJ>32301321907894</CNPJ>
423
- <CPF></CPF>
424
- <xLgr>Rua dos bobos</xLgr>
425
- <nro>0</nro>
426
- <xCpl>Na casa não tem parede</xCpl>
427
- <xBairro>Centro</xBairro>
428
- <cMun>4218004</cMun>
429
- <xMun>TIJUCAS</xMun>
430
- <UF>SC</UF>
431
- </entrega>
432
391
  <infAdic>
433
392
  <infCpl>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec congue in dolor sed sagittis.</infCpl>
434
393
  <infAdFisco>Total de FCP-ST: 348,96</infAdFisco>
@@ -73,5 +73,54 @@ describe BrDanfe::DanfeLib::NfeLib::Issqn do
73
73
  expect("#{base_dir}issqn#render-without_issqn.pdf").to have_same_content_of file: output_pdf
74
74
  end
75
75
  end
76
+
77
+ describe 'with entrega' do
78
+ let(:xml_as_string) do
79
+ <<~XML
80
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
81
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
82
+ <emit>
83
+ <IM>2345</IM>
84
+ </emit>
85
+ <total>
86
+ <ISSQNtot>
87
+ #{issqn}
88
+ </ISSQNtot>
89
+ </total>
90
+ <entrega>
91
+ <CNPJ>82743287000880</CNPJ>
92
+ <xNome>Schneider Electric Brasil Ltda</xNome>
93
+ <xLgr>Av da Saudade</xLgr>
94
+ <nro>1125</nro>
95
+ <xBairro>Frutal</xBairro>
96
+ <xCpl>Sala 01 e 02</xCpl>
97
+ <cMun>3552403</cMun>
98
+ <xMun>SUMARE</xMun>
99
+ <UF>SP</UF>
100
+ <CEP>13171320</CEP>
101
+ <fone>1921046300</fone>
102
+ <IE>671008375110</IE>
103
+ </entrega>
104
+ </infNFe>
105
+ </NFe>
106
+ XML
107
+ end
108
+
109
+ let(:issqn) do
110
+ <<~XML
111
+ <vServ>1.43</vServ>
112
+ <vBC>2.34</vBC>
113
+ <vISS>3.45</vISS>
114
+ XML
115
+ end
116
+
117
+ it 'renders xml to the pdf' do
118
+ expect(File.exist?(output_pdf)).to be_falsey
119
+
120
+ pdf.render_file output_pdf
121
+
122
+ expect("#{base_dir}issqn#render-with_entrega.pdf").to have_same_content_of file: output_pdf
123
+ end
124
+ end
76
125
  end
77
126
  end
@@ -179,5 +179,54 @@ describe BrDanfe::DanfeLib::NfeLib::Transp do
179
179
  expect("#{base_dir}transp#render-modfrete_9.pdf").to have_same_content_of file: output_pdf
180
180
  end
181
181
  end
182
+
183
+ describe 'with entrega' do
184
+ let(:xml_as_string) do
185
+ <<~XML
186
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
187
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
188
+ <transp>
189
+ <modFrete>0</modFrete>
190
+ <transporta>
191
+ <CNPJ>71434064000149</CNPJ>
192
+ <xNome>Nome do Transportador Ltda</xNome>
193
+ <IE>964508990089</IE>
194
+ <xEnder>Rua do Transportador, 456</xEnder>
195
+ <xMun>Votorantim</xMun>
196
+ <UF>SP</UF>
197
+ </transporta>
198
+ <veicTransp>
199
+ <placa>ABC-1234</placa>
200
+ <UF>SP</UF>
201
+ <RNTC>123456</RNTC>
202
+ </veicTransp>
203
+ </transp>
204
+ <entrega>
205
+ <CNPJ>82743287000880</CNPJ>
206
+ <xNome>Schneider Electric Brasil Ltda</xNome>
207
+ <xLgr>Av da Saudade</xLgr>
208
+ <nro>1125</nro>
209
+ <xBairro>Frutal</xBairro>
210
+ <xCpl>Sala 01 e 02</xCpl>
211
+ <cMun>3552403</cMun>
212
+ <xMun>SUMARE</xMun>
213
+ <UF>SP</UF>
214
+ <CEP>13171320</CEP>
215
+ <fone>1921046300</fone>
216
+ <IE>671008375110</IE>
217
+ </entrega>
218
+ </infNFe>
219
+ </NFe>
220
+ XML
221
+ end
222
+
223
+ it 'renders xml to the pdf' do
224
+ expect(File.exist?(output_pdf)).to be_falsey
225
+
226
+ pdf.render_file output_pdf
227
+
228
+ expect("#{base_dir}transp#render-with_entrega.pdf").to have_same_content_of file: output_pdf
229
+ end
230
+ end
182
231
  end
183
232
  end
@@ -82,5 +82,64 @@ describe BrDanfe::DanfeLib::NfeLib::Vol do
82
82
  expect("#{base_dir}vol#render-blank-boxes.pdf").to have_same_content_of file: output_pdf
83
83
  end
84
84
  end
85
+
86
+ describe 'with entrega' do
87
+ let(:xml_as_string) do
88
+ <<~XML
89
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
90
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
91
+ <transp>
92
+ <vol>
93
+ <qVol>1</qVol>
94
+ <esp>VOLUMES 1</esp>
95
+ <marca>DIVERSOS 1</marca>
96
+ <nVol>1</nVol>
97
+ <pesoL>1000.000</pesoL>
98
+ <pesoB>1100.000</pesoB>
99
+ </vol>
100
+ <vol>
101
+ <qVol>2</qVol>
102
+ <esp>VOLUMES 2</esp>
103
+ <marca>DIVERSOS 2</marca>
104
+ <nVol>2</nVol>
105
+ <pesoL>2000.000</pesoL>
106
+ <pesoB>2200.000</pesoB>
107
+ </vol>
108
+ <vol>
109
+ <qVol>3</qVol>
110
+ <esp>VOLUMES 3</esp>
111
+ <marca>DIVERSOS 3</marca>
112
+ <nVol>3</nVol>
113
+ <pesoL>3000.000</pesoL>
114
+ <pesoB>3300.000</pesoB>
115
+ </vol>
116
+ </transp>
117
+ <entrega>
118
+ <CNPJ>82743287000880</CNPJ>
119
+ <xNome>Schneider Electric Brasil Ltda</xNome>
120
+ <xLgr>Av da Saudade</xLgr>
121
+ <nro>1125</nro>
122
+ <xBairro>Frutal</xBairro>
123
+ <xCpl>Sala 01 e 02</xCpl>
124
+ <cMun>3552403</cMun>
125
+ <xMun>SUMARE</xMun>
126
+ <UF>SP</UF>
127
+ <CEP>13171320</CEP>
128
+ <fone>1921046300</fone>
129
+ <IE>671008375110</IE>
130
+ </entrega>
131
+ </infNFe>
132
+ </NFe>
133
+ XML
134
+ end
135
+
136
+ it 'renders xml to the pdf' do
137
+ expect(File.exist?(output_pdf)).to be_falsey
138
+
139
+ pdf.render_file output_pdf
140
+
141
+ expect("#{base_dir}vol#render-with_entrega.pdf").to have_same_content_of file: output_pdf
142
+ end
143
+ end
85
144
  end
86
145
  end
@@ -91,6 +91,17 @@ describe BrDanfe::DanfeLib::Nfe do
91
91
  expect("#{base_dir}nfe_with_extra_volumes.xml.fixture.pdf").to have_same_content_of file: output_pdf
92
92
  end
93
93
  end
94
+
95
+ context 'when NF-e has entrega' do
96
+ let(:xml_file) { File.read("#{base_dir}nfe_with_entrega.xml") }
97
+
98
+ it 'renders a NF-e with entrega' do
99
+ expect(File.exist?(output_pdf)).to be_falsey
100
+ subject.save_pdf output_pdf
101
+
102
+ expect("#{base_dir}nfe_with_entrega.xml.fixture.pdf").to have_same_content_of file: output_pdf
103
+ end
104
+ end
94
105
  end
95
106
 
96
107
  context "when xml's version is v3.10" do