br_danfe 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/br_danfe.gemspec +3 -1
  4. data/circle.yml +5 -0
  5. data/config/locales/pt-BR.yml +4 -3
  6. data/lib/br_danfe/danfe.rb +2 -2
  7. data/lib/br_danfe/dest.rb +12 -22
  8. data/lib/br_danfe/det_header.rb +1 -2
  9. data/lib/br_danfe/document.rb +34 -9
  10. data/lib/br_danfe/emit.rb +8 -18
  11. data/lib/br_danfe/issqn.rb +3 -3
  12. data/lib/br_danfe/ticket.rb +10 -5
  13. data/lib/br_danfe/transp.rb +17 -4
  14. data/lib/br_danfe/version.rb +1 -1
  15. data/lib/br_danfe/xprod.rb +4 -4
  16. data/lib/br_danfe.rb +1 -0
  17. data/spec/features/br_danfe_spec.rb +2 -19
  18. data/spec/fixtures/lib/dest#render-with_cnpj.pdf +201 -0
  19. data/spec/fixtures/lib/dest#render-with_cpf.pdf +201 -0
  20. data/spec/fixtures/lib/dest#render-with_ie.pdf +208 -0
  21. data/spec/fixtures/lib/det_body#render-csosn.pdf +855 -0
  22. data/spec/fixtures/lib/det_body#render-cst.pdf +512 -0
  23. data/spec/fixtures/lib/det_body#render-fci.pdf +260 -0
  24. data/spec/fixtures/lib/det_body#render-icms_st.pdf +267 -0
  25. data/spec/fixtures/lib/det_header#render.pdf +207 -0
  26. data/spec/fixtures/lib/document#lcnpj-blank.pdf +74 -0
  27. data/spec/fixtures/lib/document#lcnpj-invalid.pdf +74 -0
  28. data/spec/fixtures/lib/document#lcnpj-valid.pdf +81 -0
  29. data/spec/fixtures/lib/document#lie-blank.pdf +74 -0
  30. data/spec/fixtures/lib/document#lie-invalid.pdf +74 -0
  31. data/spec/fixtures/lib/document#lie-valid.pdf +81 -0
  32. data/spec/fixtures/lib/dup#render.pdf +216 -0
  33. data/spec/fixtures/lib/emit#render.pdf +143 -0
  34. data/spec/fixtures/lib/emit_header#render-with_logo.pdf +712 -0
  35. data/spec/fixtures/lib/emit_header#render-without_logo.pdf +650 -0
  36. data/spec/fixtures/lib/icmstot#render.pdf +255 -0
  37. data/spec/fixtures/lib/infadic#render-extra_volume.pdf +295 -0
  38. data/spec/fixtures/lib/infadic#render.pdf +104 -0
  39. data/spec/fixtures/lib/issqn#render.pdf +143 -0
  40. data/spec/fixtures/lib/ticket#render.pdf +113 -0
  41. data/spec/fixtures/lib/transp#render.pdf +239 -0
  42. data/spec/fixtures/lib/vol#render.pdf +152 -0
  43. data/spec/fixtures/{v2.00/nfe_with_logo.xml.logo.png → logo.png} +0 -0
  44. data/spec/fixtures/v2.00/nfe_simples_nacional.xml.fixture.pdf +14 -14
  45. data/spec/fixtures/v2.00/nfe_with_extra_volumes.xml.fixture.pdf +29 -43
  46. data/spec/fixtures/v2.00/nfe_with_fci.xml.fixture.pdf +12 -12
  47. data/spec/fixtures/v2.00/nfe_with_logo.xml.fixture.pdf +16 -16
  48. data/spec/fixtures/v2.00/nfe_with_ns.xml.fixture.pdf +29 -43
  49. data/spec/fixtures/v2.00/nfe_without_ns.xml.fixture.pdf +13 -27
  50. data/spec/fixtures/v3.10/nfe_simples_nacional.xml.fixture.pdf +23 -23
  51. data/spec/lib/dest_spec.rb +69 -0
  52. data/spec/lib/det_body_spec.rb +299 -0
  53. data/spec/lib/det_header_spec.rb +26 -0
  54. data/spec/lib/document_spec.rb +172 -0
  55. data/spec/lib/dup_spec.rb +52 -0
  56. data/spec/lib/emit_header_spec.rb +76 -0
  57. data/spec/lib/emit_spec.rb +54 -0
  58. data/spec/lib/icmstot_spec.rb +48 -0
  59. data/spec/lib/infadic_spec.rb +81 -0
  60. data/spec/lib/issqn_spec.rb +45 -0
  61. data/spec/lib/ticket_spec.rb +42 -0
  62. data/spec/lib/transp_spec.rb +51 -0
  63. data/spec/lib/vol_spec.rb +65 -0
  64. data/spec/lib/xprod_spec.rb +2 -2
  65. metadata +96 -12
  66. data/spec/fixtures/v2.00/nfe_with_cpf.xml +0 -1
  67. data/spec/fixtures/v2.00/nfe_with_cpf.xml.fixture.pdf +0 -1871
@@ -0,0 +1,172 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Document do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
8
+
9
+ describe "#lie" do
10
+ before do
11
+ subject.render
12
+ File.delete(output_pdf) if File.exist?(output_pdf)
13
+ end
14
+
15
+ context "when IE is valid" do
16
+ let(:xml_as_string) do
17
+ <<-eos
18
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
19
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
20
+ <transp>
21
+ <transporta>
22
+ <IE>964508990089</IE>
23
+ <UF>SP</UF>
24
+ </transporta>
25
+ </transp>
26
+ </infNFe>
27
+ </NFe>
28
+ eos
29
+ end
30
+
31
+ it "renders a box with a formated IE to the pdf" do
32
+ expect(File.exist?(output_pdf)).to be_falsey
33
+
34
+ subject.lie 0.80, 3.94, 1, 1, xml, "transporta/UF", "transporta/IE"
35
+ subject.render_file output_pdf
36
+
37
+ expect("#{base_dir}document#lie-valid.pdf").to be_same_file_as(output_pdf)
38
+ end
39
+ end
40
+
41
+ context "when IE is invalid" do
42
+ let(:xml_as_string) do
43
+ <<-eos
44
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
45
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
46
+ <transp>
47
+ <transporta>
48
+ <IE>123</IE>
49
+ <UF>SC</UF>
50
+ </transporta>
51
+ </transp>
52
+ </infNFe>
53
+ </NFe>
54
+ eos
55
+ end
56
+
57
+ it "renders a blank box to the pdf" do
58
+ expect(File.exist?(output_pdf)).to be_falsey
59
+
60
+ subject.lie 0.80, 3.94, 1, 1, xml, "transporta/UF", "transporta/IE"
61
+ subject.render_file output_pdf
62
+
63
+ expect("#{base_dir}document#lie-invalid.pdf").to be_same_file_as(output_pdf)
64
+ end
65
+ end
66
+
67
+ context "when IE is blank" do
68
+ let(:xml_as_string) do
69
+ <<-eos
70
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
71
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
72
+ <transp>
73
+ <transporta>
74
+ </transporta>
75
+ </transp>
76
+ </infNFe>
77
+ </NFe>
78
+ eos
79
+ end
80
+
81
+ it "renders a blank box to the pdf" do
82
+ expect(File.exist?(output_pdf)).to be_falsey
83
+
84
+ subject.lie 0.80, 3.94, 1, 1, xml, "transporta/UF", "transporta/IE"
85
+ subject.render_file output_pdf
86
+
87
+ expect("#{base_dir}document#lie-blank.pdf").to be_same_file_as(output_pdf)
88
+ end
89
+ end
90
+ end
91
+
92
+ describe "#lcnpj" do
93
+ before do
94
+ subject.render
95
+ File.delete(output_pdf) if File.exist?(output_pdf)
96
+ end
97
+
98
+ context "when CNPJ is valid" do
99
+ let(:xml_as_string) do
100
+ <<-eos
101
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
102
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
103
+ <transp>
104
+ <transporta>
105
+ <CNPJ>71434064000149</CNPJ>
106
+ </transporta>
107
+ </transp>
108
+ </infNFe>
109
+ </NFe>
110
+ eos
111
+ end
112
+
113
+ it "renders a box with a formated CNPJ to the pdf" do
114
+ expect(File.exist?(output_pdf)).to be_falsey
115
+
116
+ subject.lcnpj 0.80, 3.94, 1, 1, xml, "transporta/CNPJ"
117
+ subject.render_file output_pdf
118
+
119
+ expect("#{base_dir}document#lcnpj-valid.pdf").to be_same_file_as(output_pdf)
120
+ end
121
+ end
122
+
123
+ context "when CNPJ is invalid" do
124
+ let(:xml_as_string) do
125
+ <<-eos
126
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
127
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
128
+ <transp>
129
+ <transporta>
130
+ <CNPJ>714</CNPJ>
131
+ </transporta>
132
+ </transp>
133
+ </infNFe>
134
+ </NFe>
135
+ eos
136
+ end
137
+
138
+ it "renders a blank box to the pdf" do
139
+ expect(File.exist?(output_pdf)).to be_falsey
140
+
141
+ subject.lcnpj 0.80, 3.94, 1, 1, xml, "transporta/CNPJ"
142
+ subject.render_file output_pdf
143
+
144
+ expect("#{base_dir}document#lcnpj-invalid.pdf").to be_same_file_as(output_pdf)
145
+ end
146
+ end
147
+
148
+ context "when CNPJ is blank" do
149
+ let(:xml_as_string) do
150
+ <<-eos
151
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
152
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
153
+ <transp>
154
+ <transporta>
155
+ </transporta>
156
+ </transp>
157
+ </infNFe>
158
+ </NFe>
159
+ eos
160
+ end
161
+
162
+ it "renders a blank box to the pdf" do
163
+ expect(File.exist?(output_pdf)).to be_falsey
164
+
165
+ subject.lcnpj 0.80, 3.94, 1, 1, xml, "transporta/CNPJ"
166
+ subject.render_file output_pdf
167
+
168
+ expect("#{base_dir}document#lcnpj-blank.pdf").to be_same_file_as(output_pdf)
169
+ end
170
+ end
171
+ end
172
+ end
@@ -0,0 +1,52 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Dup do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
16
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
17
+ <cobr>
18
+ <dup>
19
+ <nDup>1</nDup>
20
+ <dVenc>2015-02-13</dVenc>
21
+ <vDup>25.56</vDup>
22
+ </dup>
23
+ <dup>
24
+ <nDup>2</nDup>
25
+ <dVenc>2015-03-15</dVenc>
26
+ <vDup>25.56</vDup>
27
+ </dup>
28
+ <dup>
29
+ <nDup>3</nDup>
30
+ <dVenc>2015-04-14</dVenc>
31
+ <vDup>25.55</vDup>
32
+ </dup>
33
+ </cobr>
34
+ </infNFe>
35
+ </NFe>
36
+ eos
37
+ end
38
+
39
+ before do
40
+ subject.render
41
+ File.delete(output_pdf) if File.exist?(output_pdf)
42
+ end
43
+
44
+ it "renders xml to the pdf" do
45
+ expect(File.exist?(output_pdf)).to be_falsey
46
+
47
+ pdf.render_file output_pdf
48
+
49
+ expect("#{base_dir}dup#render.pdf").to be_same_file_as(output_pdf)
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,76 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::EmitHeader do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ describe "#render" do
11
+ let(:xml_as_string) do
12
+ <<-eos
13
+ <nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
14
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
15
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
16
+ <ide>
17
+ <tpNF>1</tpNF>
18
+ <nNF>1</nNF>
19
+ <serie>1</serie>
20
+ </ide>
21
+ <emit>
22
+ <xNome>Nome do Remetente Ltda</xNome>
23
+ <enderEmit>
24
+ <xLgr>Rua do Remetente, Casa</xLgr>
25
+ <nro>123</nro>
26
+ <xBairro>Bairro do Remetente</xBairro>
27
+ <xMun>SAO PAULO</xMun>
28
+ <UF>SP</UF>
29
+ <CEP>12345678</CEP>
30
+ <fone>1112345678</fone>
31
+ <email>foo@bar.com</email>
32
+ </enderEmit>
33
+ </emit>
34
+ </infNFe>
35
+ </NFe>
36
+ <protNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
37
+ <infProt Id="ID325110012866320">
38
+ <chNFe>25111012345678901234550020000134151000134151</chNFe>
39
+ </infProt>
40
+ </protNFe>
41
+ </nfeProc>
42
+ eos
43
+ end
44
+
45
+ before do
46
+ subject.render
47
+ File.delete(output_pdf) if File.exist?(output_pdf)
48
+ end
49
+
50
+ context "without logo" do
51
+ subject { described_class.new(pdf, xml, "") }
52
+
53
+ it "renders xml to the pdf" do
54
+ expect(File.exist?(output_pdf)).to be_falsey
55
+
56
+ pdf.render_file output_pdf
57
+
58
+ expect("#{base_dir}emit_header#render-without_logo.pdf").to be_same_file_as(output_pdf)
59
+ end
60
+ end
61
+
62
+ context "with logo" do
63
+ let(:logo_path) { "spec/fixtures/logo.png" }
64
+
65
+ subject { described_class.new(pdf, xml, logo_path) }
66
+
67
+ it "renders xml to the pdf" do
68
+ expect(File.exist?(output_pdf)).to be_falsey
69
+
70
+ pdf.render_file output_pdf
71
+
72
+ expect("#{base_dir}emit_header#render-with_logo.pdf").to be_same_file_as(output_pdf)
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,54 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Emit do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
16
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
17
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
18
+ <ide>
19
+ <natOp>Vendas de producao do estabelecimento</natOp>
20
+ </ide>
21
+ <emit>
22
+ <CNPJ>62013294000143</CNPJ>
23
+ <enderEmit>
24
+ <UF>SP</UF>
25
+ </enderEmit>
26
+ <IE>526926313553</IE>
27
+ <IE_ST>611724092039</IE_ST>
28
+ </emit>
29
+ </infNFe>
30
+ </NFe>
31
+ <protNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
32
+ <infProt Id="ID325110012866320">
33
+ <dhRecbto>2011-10-29T14:37:09</dhRecbto>
34
+ <nProt>325110012866320</nProt>
35
+ </infProt>
36
+ </protNFe>
37
+ </nfeProc>
38
+ eos
39
+ end
40
+
41
+ before do
42
+ subject.render
43
+ File.delete(output_pdf) if File.exist?(output_pdf)
44
+ end
45
+
46
+ it "renders xml to the pdf" do
47
+ expect(File.exist?(output_pdf)).to be_falsey
48
+
49
+ pdf.render_file output_pdf
50
+
51
+ expect("#{base_dir}emit#render.pdf").to be_same_file_as(output_pdf)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,48 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Icmstot do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
16
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
17
+ <ICMSTot>
18
+ <vBC>1.23</vBC>
19
+ <vICMS>2.34</vICMS>
20
+ <vBCST>3.45</vBCST>
21
+ <vST>4.56</vST>
22
+ <vProd>5.67</vProd>
23
+ <vFrete>6.78</vFrete>
24
+ <vSeg>7.89</vSeg>
25
+ <vDesc>9.01</vDesc>
26
+ <vIPI>0.12</vIPI>
27
+ <vOutro>1.34</vOutro>
28
+ <vNF>4.35</vNF>
29
+ </ICMSTot>
30
+ </infNFe>
31
+ </NFe>
32
+ eos
33
+ end
34
+
35
+ before do
36
+ subject.render
37
+ File.delete(output_pdf) if File.exist?(output_pdf)
38
+ end
39
+
40
+ it "renders xml to the pdf" do
41
+ expect(File.exist?(output_pdf)).to be_falsey
42
+
43
+ pdf.render_file output_pdf
44
+
45
+ expect("#{base_dir}icmstot#render.pdf").to be_same_file_as(output_pdf)
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,81 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Infadic do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
16
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
17
+ <transp>
18
+ <vol>
19
+ <qVol>1</qVol>
20
+ <esp>VOLUMES 1</esp>
21
+ <marca>DIVERSOS 1</marca>
22
+ <nVol>1</nVol>
23
+ <pesoL>1000.000</pesoL>
24
+ <pesoB>1100.000</pesoB>
25
+ </vol>
26
+ <vol>
27
+ <qVol>2</qVol>
28
+ <esp>VOLUMES 2</esp>
29
+ <marca>DIVERSOS 2</marca>
30
+ <nVol>2</nVol>
31
+ <pesoL>2000.000</pesoL>
32
+ <pesoB>2200.000</pesoB>
33
+ </vol>
34
+ <vol>
35
+ <qVol>3</qVol>
36
+ <esp>VOLUMES 3</esp>
37
+ <marca>DIVERSOS 3</marca>
38
+ <nVol>3</nVol>
39
+ <pesoL>3000.000</pesoL>
40
+ <pesoB>3300.000</pesoB>
41
+ </vol>
42
+ </transp>
43
+ <infAdic>
44
+ <infCpl>Uma observação</infCpl>
45
+ </infAdic>
46
+ </infNFe>
47
+ </NFe>
48
+ eos
49
+ end
50
+
51
+ context "without extra volume" do
52
+ before do
53
+ subject.render(1)
54
+ File.delete(output_pdf) if File.exist?(output_pdf)
55
+ end
56
+
57
+ it "renders xml to the pdf" do
58
+ expect(File.exist?(output_pdf)).to be_falsey
59
+
60
+ pdf.render_file output_pdf
61
+
62
+ expect("#{base_dir}infadic#render.pdf").to be_same_file_as(output_pdf)
63
+ end
64
+ end
65
+
66
+ context "with extra volume" do
67
+ before do
68
+ subject.render(3)
69
+ File.delete(output_pdf) if File.exist?(output_pdf)
70
+ end
71
+
72
+ it "renders xml to the pdf" do
73
+ expect(File.exist?(output_pdf)).to be_falsey
74
+
75
+ pdf.render_file output_pdf
76
+
77
+ expect("#{base_dir}infadic#render-extra_volume.pdf").to be_same_file_as(output_pdf)
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,45 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Issqn do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
16
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
17
+ <emit>
18
+ <IM>2345</IM>
19
+ </emit>
20
+ <total>
21
+ <ISSQNtot>
22
+ <vServ>1.43</vServ>
23
+ <vBC>2.34</vBC>
24
+ <vISS>3.45</vISS>
25
+ </ISSQNtot>
26
+ </total>
27
+ </infNFe>
28
+ </NFe>
29
+ eos
30
+ end
31
+
32
+ before do
33
+ subject.render
34
+ File.delete(output_pdf) if File.exist?(output_pdf)
35
+ end
36
+
37
+ it "renders xml to the pdf" do
38
+ expect(File.exist?(output_pdf)).to be_falsey
39
+
40
+ pdf.render_file output_pdf
41
+
42
+ expect("#{base_dir}issqn#render.pdf").to be_same_file_as(output_pdf)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,42 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Ticket do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
16
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
17
+ <ide>
18
+ <nNF>1</nNF>
19
+ <serie>1</serie>
20
+ </ide>
21
+ <emit>
22
+ <xNome>Nome do Remetente Ltda</xNome>
23
+ </emit>
24
+ </infNFe>
25
+ </NFe>
26
+ eos
27
+ end
28
+
29
+ before do
30
+ subject.render
31
+ File.delete(output_pdf) if File.exist?(output_pdf)
32
+ end
33
+
34
+ it "renders xml to the pdf" do
35
+ expect(File.exist?(output_pdf)).to be_falsey
36
+
37
+ pdf.render_file output_pdf
38
+
39
+ expect("#{base_dir}ticket#render.pdf").to be_same_file_as(output_pdf)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,51 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Transp do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
16
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
17
+ <transp>
18
+ <modFrete>0</modFrete>
19
+ <transporta>
20
+ <CNPJ>71434064000149</CNPJ>
21
+ <xNome>Nome do Transportador Ltda</xNome>
22
+ <IE>964508990089</IE>
23
+ <xEnder>Rua do Transportador, 456</xEnder>
24
+ <xMun>Votorantim</xMun>
25
+ <UF>SP</UF>
26
+ </transporta>
27
+ <veicTransp>
28
+ <placa>ABC-1234</placa>
29
+ <UF>SP</UF>
30
+ <RNTC>123456</RNTC>
31
+ </veicTransp>
32
+ </transp>
33
+ </infNFe>
34
+ </NFe>
35
+ eos
36
+ end
37
+
38
+ before do
39
+ subject.render
40
+ File.delete(output_pdf) if File.exist?(output_pdf)
41
+ end
42
+
43
+ it "renders xml to the pdf" do
44
+ expect(File.exist?(output_pdf)).to be_falsey
45
+
46
+ pdf.render_file output_pdf
47
+
48
+ expect("#{base_dir}transp#render.pdf").to be_same_file_as(output_pdf)
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,65 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Vol do
4
+ let(:base_dir) { "./spec/fixtures/lib/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+
7
+ let(:pdf) { BrDanfe::Document.new }
8
+ let(:xml) { BrDanfe::XML.new(xml_as_string) }
9
+
10
+ subject { described_class.new(pdf, xml) }
11
+
12
+ describe "#render" do
13
+ let(:xml_as_string) do
14
+ <<-eos
15
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
16
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="2.00">
17
+ <transp>
18
+ <vol>
19
+ <qVol>1</qVol>
20
+ <esp>VOLUMES 1</esp>
21
+ <marca>DIVERSOS 1</marca>
22
+ <nVol>1</nVol>
23
+ <pesoL>1000.000</pesoL>
24
+ <pesoB>1100.000</pesoB>
25
+ </vol>
26
+ <vol>
27
+ <qVol>2</qVol>
28
+ <esp>VOLUMES 2</esp>
29
+ <marca>DIVERSOS 2</marca>
30
+ <nVol>2</nVol>
31
+ <pesoL>2000.000</pesoL>
32
+ <pesoB>2200.000</pesoB>
33
+ </vol>
34
+ <vol>
35
+ <qVol>3</qVol>
36
+ <esp>VOLUMES 3</esp>
37
+ <marca>DIVERSOS 3</marca>
38
+ <nVol>3</nVol>
39
+ <pesoL>3000.000</pesoL>
40
+ <pesoB>3300.000</pesoB>
41
+ </vol>
42
+ </transp>
43
+ </infNFe>
44
+ </NFe>
45
+ eos
46
+ end
47
+
48
+ before do
49
+ subject.render
50
+ File.delete(output_pdf) if File.exist?(output_pdf)
51
+ end
52
+
53
+ it "renders xml to the pdf" do
54
+ expect(File.exist?(output_pdf)).to be_falsey
55
+
56
+ pdf.render_file output_pdf
57
+
58
+ expect("#{base_dir}vol#render.pdf").to be_same_file_as(output_pdf)
59
+ end
60
+
61
+ it "returns the quantity of volumes" do
62
+ expect(subject.render).to eq 3
63
+ end
64
+ end
65
+ end