rnfse 0.3.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +7 -6
  4. data/lib/provedores.yml +8 -0
  5. data/lib/rnfse.rb +5 -1
  6. data/lib/rnfse/api.rb +44 -22
  7. data/lib/rnfse/api/abrasf_1_0.rb +100 -17
  8. data/lib/rnfse/api/abrasf_1_0/#definitions.json# +413 -0
  9. data/lib/rnfse/api/abrasf_1_0/cancelar_nfse.json +13 -0
  10. data/lib/rnfse/api/abrasf_1_0/consultar_nfse.json +17 -0
  11. data/lib/rnfse/api/abrasf_1_0/consultar_nfse_por_rps.json +13 -0
  12. data/lib/rnfse/api/abrasf_1_0/definitions.json +27 -3
  13. data/lib/rnfse/api/abrasf_1_0/recepcionar_lote_rps.json +1 -1
  14. data/lib/rnfse/api/iss_net_1_0.rb +46 -2
  15. data/lib/rnfse/api/speed_gov_1_0.rb +115 -0
  16. data/lib/rnfse/call_chain.rb +4 -4
  17. data/lib/rnfse/error.rb +15 -0
  18. data/lib/rnfse/hash.rb +24 -11
  19. data/lib/rnfse/string.rb +16 -2
  20. data/lib/rnfse/version.rb +1 -1
  21. data/lib/rnfse/xml_builder/abrasf_1_0.rb +103 -13
  22. data/lib/rnfse/xml_builder/iss_net_1_0.rb +34 -4
  23. data/lib/rnfse/xml_builder/speed_gov_1_0.rb +158 -0
  24. data/spec/api/abrasf_1_0/cancelar_nfse_json_spec.rb +25 -0
  25. data/spec/api/abrasf_1_0/consultar_lote_rps_json_spec.rb +23 -0
  26. data/spec/api/abrasf_1_0/consultar_nfse_json_spec.rb +45 -0
  27. data/spec/api/abrasf_1_0/consultar_nfse_por_rps_json_spec.rb +23 -0
  28. data/spec/api/abrasf_1_0/consultar_situacao_lote_rps_json_spec.rb +23 -0
  29. data/spec/api/abrasf_1_0_spec.rb +185 -6
  30. data/spec/api/iss_net_1_0_spec.rb +89 -9
  31. data/spec/api/speed_gov_1_0_spec.rb +243 -0
  32. data/spec/api_spec.rb +43 -28
  33. data/spec/error_spec.rb +10 -0
  34. data/spec/fixtures/abrasf_1_0/cancelar_nfse_envio.xml +16 -0
  35. data/spec/fixtures/abrasf_1_0/consultar_nfse.xml +23 -0
  36. data/spec/fixtures/abrasf_1_0/consultar_nfse_por_rps.xml +14 -0
  37. data/spec/fixtures/iss_net_1_0/cancelar_nfse_envio.xml +17 -0
  38. data/spec/fixtures/iss_net_1_0/consultar_nfse.xml +29 -0
  39. data/spec/fixtures/iss_net_1_0/consultar_nfse_por_rps.xml +17 -0
  40. data/spec/fixtures/speed_gov_1_0/consultar_nfse_envio.xml +29 -0
  41. data/spec/fixtures/speed_gov_1_0/consultar_nfse_rps_envio.xml +16 -0
  42. data/spec/fixtures/speed_gov_1_0/consultar_situacao_lote_rps_envio.xml +12 -0
  43. data/spec/fixtures/speed_gov_1_0/enviar_lote_rps_envio.xml +82 -0
  44. data/spec/fixtures/speed_gov_1_0/header.xml +9 -0
  45. data/spec/fixtures/vcr_cassettes/iss_net_1_0_cancelar_nfse.yml +107 -0
  46. data/spec/fixtures/vcr_cassettes/iss_net_1_0_consultar_nfse.yml +7937 -0
  47. data/spec/fixtures/vcr_cassettes/iss_net_1_0_consultar_nfse_por_rps.yml +242 -0
  48. data/spec/fixtures/vcr_cassettes/speed_gov_1_0_consultar_nfse.yml +60 -0
  49. data/spec/fixtures/vcr_cassettes/speed_gov_1_0_consultar_nfse_por_rps.yml +80 -0
  50. data/spec/fixtures/vcr_cassettes/speed_gov_1_0_consultar_situacao_lote_rps.yml +77 -0
  51. data/spec/fixtures/vcr_cassettes/speed_gov_1_0_recepcionar_lote_rps.yml +171 -0
  52. data/spec/fixtures/vcr_cassettes/speed_gov_1_0_recepcionar_lote_rps_ascii.yml +171 -0
  53. data/spec/hash_spec.rb +21 -0
  54. data/spec/spec_helper.rb +2 -0
  55. data/spec/string_spec.rb +31 -5
  56. data/spec/xml_builder/abrasf_1_0_spec.rb +110 -43
  57. data/spec/xml_builder/iss_net_1_0_spec.rb +111 -44
  58. data/spec/xml_builder/speed_gov_1_0_spec.rb +173 -0
  59. metadata +86 -37
  60. data/.gitignore +0 -25
  61. data/.rspec +0 -1
  62. data/.travis.yml +0 -14
  63. data/Gemfile +0 -3
  64. data/Guardfile +0 -15
  65. data/Procfile +0 -1
  66. data/Rakefile +0 -12
  67. data/rnfse.gemspec +0 -61
  68. data/spec/fixtures/abrasf_1_0/teste.xml +0 -8
  69. data/spec/support/.keep +0 -0
@@ -4,8 +4,6 @@ require 'spec_helper'
4
4
  describe Rnfse::API::IssNet10 do
5
5
  let(:certificate) { File.join($ROOT, 'spec', 'fixtures', 'certificate.pem') }
6
6
  let(:key) { File.join($ROOT, 'spec', 'fixtures', 'key.pem') }
7
-
8
-
9
7
  let(:client) do
10
8
  Rnfse::API.new(padrao: :iss_net_1_0,
11
9
  namespace: 'http://www.issnetonline.com.br/webservice/nfd',
@@ -14,6 +12,14 @@ describe Rnfse::API::IssNet10 do
14
12
  key: key)
15
13
  end
16
14
 
15
+ describe '#operations' do
16
+ it { expect(client.operations).to eq([
17
+ :recepcionar_lote_rps, :consultar_situacao_lote_rps,
18
+ :consultar_nfse_por_rps, :consultar_nfse, :consultar_lote_rps,
19
+ :cancelar_nfse, :consultar_url_visualizacao_nfse,
20
+ :consultar_url_visualizacao_nfse_serie
21
+ ]) }
22
+ end
17
23
 
18
24
  describe '#recepcionar_lote_rps' do
19
25
  context 'quando parametros errados são passados,' do
@@ -33,7 +39,7 @@ describe Rnfse::API::IssNet10 do
33
39
  lista_rps: [
34
40
  {
35
41
  identificacao_rps: { numero: 15, serie: "8", tipo: 1 },
36
- data_emissao: "2014-06-24T10:00:00",
42
+ data_emissao: Date.parse("2014-06-24T10:00:00").rfc3339,
37
43
  natureza_operacao: 1,
38
44
  optante_simples_nacional: false,
39
45
  incentivador_cultural: false,
@@ -138,10 +144,84 @@ describe Rnfse::API::IssNet10 do
138
144
  it { should be_kind_of(Hash) }
139
145
  end
140
146
 
141
- describe '#cancelar_nfse'
142
- describe '#consultar_nfse_por_rps'
143
- describe '#consultar_nfse'
144
- describe '#consultar_url_visualizacao_nfse'
145
- describe '#consultar_url_visualizacao_nfse_serie'
146
- describe '#consulta_situacao_lote_rps'
147
+ describe '#cancelar_nfse' do
148
+ context 'quando parametros errados são passados,' do
149
+ it { expect{ client.cancelar_nfse(bogus: :data) }.to raise_error(ArgumentError) }
150
+ end
151
+
152
+ it { expect(client).to respond_to(:cancelar_nfse) }
153
+
154
+ subject do
155
+ VCR.use_cassette('iss_net_1_0_cancelar_nfse') do
156
+ client.cancelar_nfse({
157
+ identificacao_nfse: {
158
+ numero: 201400000000015,
159
+ cnpj: "14.576.582/0001-63",
160
+ inscricao_municipal: "124762",
161
+ codigo_municipio: 999
162
+ },
163
+ codigo_cancelamento: '5'
164
+ })
165
+ end
166
+ end
167
+
168
+ it { should_not be_nil }
169
+ it { should be_kind_of(Hash) }
170
+ end
171
+
172
+ describe '#consultar_nfse_por_rps' do
173
+ context 'quando parametros errados são passados,' do
174
+ it { expect{ client.consultar_nfse_por_rps(bogus: :data) }.to raise_error(ArgumentError) }
175
+ end
176
+
177
+ it { expect(client).to respond_to(:cancelar_nfse) }
178
+
179
+ subject do
180
+ VCR.use_cassette('iss_net_1_0_consultar_nfse_por_rps') do
181
+ client.consultar_nfse_por_rps({
182
+ identificacao_rps: { numero: 15, serie: "8", tipo: 1 },
183
+ prestador: {
184
+ cnpj: "14.576.582/0001-63",
185
+ inscricao_municipal: "124762"
186
+ }
187
+ })
188
+ end
189
+ end
190
+
191
+ it { should_not be_nil }
192
+ it { should be_kind_of(Hash) }
193
+ end
194
+
195
+ describe '#consultar_nfse' do
196
+ context 'quando parametros errados são passados,' do
197
+ it { expect{ client.consultar_nfse(bogus: :data) }.to raise_error(ArgumentError) }
198
+ end
199
+
200
+ it { expect(client).to respond_to(:cancelar_nfse) }
201
+
202
+ subject do
203
+ VCR.use_cassette('iss_net_1_0_consultar_nfse') do
204
+ client.consultar_nfse({
205
+ prestador: {
206
+ cnpj: "14.576.582/0001-63",
207
+ inscricao_municipal: "124762"
208
+ }
209
+ })
210
+ end
211
+ end
212
+
213
+ it { should_not be_nil }
214
+ it { should be_kind_of(Hash) }
215
+ end
216
+
217
+ describe '#consultar_url_visualizacao_nfse' do
218
+ it { expect(client).to respond_to(:consultar_url_visualizacao_nfse) }
219
+ it { expect { client.consultar_url_visualizacao_nfse() }.to raise_error(Rnfse::Error::NotImplemented) }
220
+ end
221
+
222
+ describe '#consultar_url_visualizacao_nfse_serie' do
223
+ it { expect(client).to respond_to(:consultar_url_visualizacao_nfse_serie) }
224
+ it { expect { client.consultar_url_visualizacao_nfse_serie() }.to raise_error(Rnfse::Error::NotImplemented) }
225
+ end
226
+
147
227
  end
@@ -0,0 +1,243 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Rnfse::API::SpeedGov10 do
5
+ let(:certificate) { File.join($ROOT, 'spec', 'fixtures', 'certificate.pem') }
6
+ let(:key) { File.join($ROOT, 'spec', 'fixtures', 'key.pem') }
7
+ let(:client) do
8
+ Rnfse::API.new(padrao: :speed_gov_1_0,
9
+ namespace: 'http://ws.speedgov.com.br/',
10
+ endpoint: 'http://speedgov.com.br/wsmod/Nfes',
11
+ certificate: certificate,
12
+ key: key)
13
+ end
14
+
15
+ describe '#operations' do
16
+ it { expect(client.operations).to eq([
17
+ :recepcionar_lote_rps, :consultar_situacao_lote_rps,
18
+ :consultar_nfse_por_rps, :consultar_nfse, :consultar_lote_rps,
19
+ :cancelar_nfse
20
+ ]) }
21
+ end
22
+
23
+ describe '#recepcionar_lote_rps' do
24
+ it { expect(client).to respond_to(:recepcionar_lote_rps) }
25
+
26
+ context 'ao não passar opções certificate e key para assinatura do xml,' do
27
+ let(:client) do
28
+ Rnfse::API.new(padrao: :abrasf_1_0,
29
+ namespace: 'http://www.issnetonline.com.br/webservice/nfd',
30
+ endpoint: 'http://www.issnetonline.com.br/webserviceabrasf/homologacao/servicos.asmx')
31
+ end
32
+
33
+ it { expect { client.recepcionar_lote_rps() }.to raise_error(ArgumentError) }
34
+ end
35
+
36
+ context 'quando os parametros são errados,' do
37
+ it { expect{ client.recepcionar_lote_rps(bogus: :data) }.to raise_error(ArgumentError) }
38
+ end
39
+
40
+ context 'quando existem parametros não ASCII,' do
41
+ it { expect do
42
+ VCR.use_cassette('speed_gov_1_0_recepcionar_lote_rps_ascii') do
43
+ client.recepcionar_lote_rps({
44
+ lote_rps: {
45
+ numero_lote: 1,
46
+ cnpj: "12.552.510/0001-50",
47
+ inscricao_municipal: "68",
48
+ quantidade_rps: 1,
49
+ lista_rps: [
50
+ {
51
+ identificacao_rps: { numero: 1, serie: "00000", tipo: 1 },
52
+ data_emissao: Date.parse("2013-10-01T08:10:00").rfc3339,
53
+ natureza_operacao: 1,
54
+ optante_simples_nacional: false,
55
+ incentivador_cultural: false,
56
+ status: 1,
57
+ servico: {
58
+ valores: {
59
+ valor_servicos: 500.0,
60
+ iss_retido: false,
61
+ base_calculo: 500.0
62
+ },
63
+ item_lista_servico: "101",
64
+ discriminacao: 'àõéúîàõéúîàõéúîàõéúîàõéúî',
65
+ codigo_municipio: 9999999
66
+ },
67
+ prestador: {
68
+ cnpj: "12.552.510/0001-50",
69
+ inscricao_municipal: "68"
70
+ },
71
+ tomador: {
72
+ identificacao_tomador: {
73
+ cnpj: "12.477.945/0001-88"
74
+ },
75
+ razao_social: 'àõéúîàõéúîàõéúîàõéúîàõéúî'
76
+ }
77
+ }
78
+ ]
79
+ }
80
+ })
81
+ end
82
+ end.to raise_error(Rnfse::Error::NonASCIIEncoding) }
83
+ end
84
+
85
+ subject do
86
+ VCR.use_cassette('speed_gov_1_0_recepcionar_lote_rps') do
87
+ client.recepcionar_lote_rps({
88
+ lote_rps: {
89
+ numero_lote: 1,
90
+ cnpj: "12.552.510/0001-50",
91
+ inscricao_municipal: "68",
92
+ quantidade_rps: 1,
93
+ lista_rps: [
94
+ {
95
+ identificacao_rps: { numero: 1, serie: "00000", tipo: 1 },
96
+ data_emissao: Date.parse("2013-10-01T08:10:00").rfc3339,
97
+ natureza_operacao: 1,
98
+ optante_simples_nacional: false,
99
+ incentivador_cultural: false,
100
+ status: 1,
101
+ servico: {
102
+ valores: {
103
+ valor_servicos: 500.0,
104
+ valor_deducoes: 0.0,
105
+ valor_pis: 0.0,
106
+ valor_cofins: 0.0,
107
+ valor_inss: 0.0,
108
+ valor_ir: 0.0,
109
+ valor_csll: 0.0,
110
+ iss_retido: false,
111
+ valor_iss: 10.0,
112
+ valor_iss_retido: 0.0,
113
+ outras_retencoes: 0.0,
114
+ base_calculo: 500.0,
115
+ aliquota: 0.02,
116
+ valor_liquido_nfse: 490.0,
117
+ desconto_condicionado: 0.0,
118
+ desconto_incondicionado: 0.0
119
+ },
120
+ item_lista_servico: "101",
121
+ codigo_cnae: "6201-5/00",
122
+ codigo_tributacao_municipio: "620150000",
123
+ discriminacao: "Borealis",
124
+ codigo_municipio: 9999999
125
+ },
126
+ prestador: {
127
+ cnpj: "12.552.510/0001-50",
128
+ inscricao_municipal: "68"
129
+ },
130
+ tomador: {
131
+ identificacao_tomador: {
132
+ cnpj: "12.477.945/0001-88"
133
+ },
134
+ razao_social: 'Black Mesa Research Facility',
135
+ endereco: {
136
+ endereco: 'RUA VICENTE F. GOES',
137
+ numero: '182',
138
+ complemento: 'A',
139
+ bairro: 'ALTO DA MANGUEIRA',
140
+ codigo_municipio: 9999999,
141
+ uf: 'CE',
142
+ cep: '61900-000'
143
+ },
144
+ contato: {
145
+ telefone: '8512341234',
146
+ email: 'teste@fes.com.br'
147
+ }
148
+ },
149
+ intermediario_servico: {
150
+ razao_social: 'Intersol Servicos Ltda',
151
+ cpf: '897.461.043-49',
152
+ inscricao_municipal: '1234567'
153
+ }
154
+ }
155
+ ]
156
+ }
157
+ })
158
+ end
159
+ end
160
+
161
+ it { should_not be_nil }
162
+ it { should be_kind_of(Hash) }
163
+ end
164
+
165
+ describe '#consultar_situacao_lote_rps' do
166
+ context 'quando parametros errados são passados,' do
167
+ it { expect{ client.consultar_situacao_lote_rps(bogus: :data) }.to raise_error(ArgumentError) }
168
+ end
169
+
170
+ it { expect(client).to respond_to(:consultar_situacao_lote_rps) }
171
+
172
+ subject do
173
+ VCR.use_cassette('speed_gov_1_0_consultar_situacao_lote_rps') do
174
+ client.consultar_situacao_lote_rps({
175
+ prestador: {
176
+ cnpj: '07.792.435/0009-12',
177
+ inscricao_municipal: '59274734'
178
+ },
179
+ protocolo: '717293e4-3601-4955-865c-5a022c2b5ff5'
180
+ })
181
+ end
182
+ end
183
+
184
+ it { should_not be_nil }
185
+ it { should be_kind_of(Hash) }
186
+ end
187
+
188
+ describe '#consultar_nfse_por_rps' do
189
+ context 'quando parametros errados são passados,' do
190
+ it { expect{ client.consultar_nfse_por_rps(bogus: :data) }.to raise_error(ArgumentError) }
191
+ end
192
+
193
+ it { expect(client).to respond_to(:cancelar_nfse) }
194
+
195
+ subject do
196
+ VCR.use_cassette('speed_gov_1_0_consultar_nfse_por_rps') do
197
+ client.consultar_nfse_por_rps({
198
+ identificacao_rps: { numero: 1, serie: "00000", tipo: 1 },
199
+ prestador: {
200
+ cnpj: "12.552.510/0001-50",
201
+ inscricao_municipal: "68"
202
+ }
203
+ })
204
+ end
205
+ end
206
+
207
+ it { should_not be_nil }
208
+ it { should be_kind_of(Hash) }
209
+ end
210
+
211
+ describe '#consultar_nfse' do
212
+ context 'quando parametros errados são passados,' do
213
+ it { expect{ client.consultar_nfse(bogus: :data) }.to raise_error(ArgumentError) }
214
+ end
215
+
216
+ it { expect(client).to respond_to(:consultar_nfse) }
217
+
218
+ subject do
219
+ VCR.use_cassette('speed_gov_1_0_consultar_nfse') do
220
+ client.consultar_nfse({
221
+ prestador: {
222
+ cnpj: "12.552.510/0001-50",
223
+ inscricao_municipal: "68"
224
+ }
225
+ })
226
+ end
227
+ end
228
+
229
+ it { should_not be_nil }
230
+ it { should be_kind_of(Hash) }
231
+ end
232
+
233
+ describe '#consultar_lote_rps' do
234
+ it { expect(client).to respond_to(:consultar_lote_rps) }
235
+ it { expect { client.consultar_lote_rps() }.to raise_error(Rnfse::Error::NotImplemented) }
236
+ end
237
+
238
+ describe '#cancelar_nfse' do
239
+ it { expect(client).to respond_to(:cancelar_nfse) }
240
+ it { expect { client.cancelar_nfse() }.to raise_error(Rnfse::Error::NotImplemented) }
241
+ end
242
+
243
+ end
@@ -4,31 +4,46 @@ require 'spec_helper'
4
4
  describe Rnfse::API do
5
5
  describe '::new' do
6
6
 
7
- let(:certificate) { File.join($ROOT, 'spec', 'fixtures', 'certificate.pem') }
8
- let(:key) { File.join($ROOT, 'spec', 'fixtures', 'key.pem') }
7
+ context 'ao passar um padrão, namespace e endpoint,' do
8
+ subject do
9
+ Rnfse::API.new(padrao: :abrasf_1_0,
10
+ namespace: 'http://www.issnetonline.com.br/webservice/nfd',
11
+ endpoint: 'http://www.issnetonline.com.br/webserviceabrasf/homologacao/servicos.asmx')
12
+ end
13
+ it { should be_kind_of(Rnfse::API) }
14
+ its(:namespace) { should eq('http://www.issnetonline.com.br/webservice/nfd') }
15
+ its(:endpoint) { should eq('http://www.issnetonline.com.br/webserviceabrasf/homologacao/servicos.asmx') }
16
+ its(:api) { should eq('abrasf_1_0') }
17
+ its(:xml_builder) { should be_kind_of(Rnfse::XMLBuilder) }
18
+ its(:soap_client) { should be_kind_of(Savon::Client) }
19
+ end
20
+
21
+ context 'ao não passar informações válidas,' do
22
+ it { expect { Rnfse::API.new() }.to raise_error(ArgumentError) }
23
+ it { expect { Rnfse::API.new(error: 'error') }.to raise_error(ArgumentError) }
9
24
 
10
- context 'ao passar um provedor e município,' do
25
+ context 'como provedor inexistente,' do
26
+ it { expect { Rnfse::API.new(provedor: :none, municipio: :cuiaba) }.to raise_error(ArgumentError) }
27
+ it { expect { Rnfse::API.new(provedor: :none, homologacao: true) }.to raise_error(ArgumentError) }
28
+ end
29
+ end
30
+
31
+ context 'ISS.net ao passar um provedor e município,' do
11
32
  subject do
12
33
  Rnfse::API.new(provedor: :iss_net,
13
- municipio: :cuiaba,
14
- certificate: certificate,
15
- key: key)
34
+ municipio: :cuiaba)
16
35
  end
17
36
 
18
37
  it { should be_kind_of(Rnfse::API) }
19
38
  its(:namespace) { should eq('http://www.issnetonline.com.br/webservice/nfd') }
20
39
  its(:endpoint) { should eq('http://www.issnetonline.com.br/webserviceabrasf/cuiaba/servicos.asmx') }
21
40
  its(:api) { should eq('iss_net_1_0') }
22
- its(:xml_builder) { should be_kind_of(Rnfse::XMLBuilder) }
23
- its(:soap_client) { should be_kind_of(Savon::Client) }
24
41
  end
25
42
 
26
- context 'ao passar um provedor em homologação,' do
43
+ context 'ISS.net ao passar um provedor em homologação,' do
27
44
  subject do
28
45
  Rnfse::API.new(provedor: :iss_net,
29
- homologacao: true,
30
- certificate: certificate,
31
- key: key)
46
+ homologacao: true)
32
47
  end
33
48
 
34
49
  it { should be_kind_of(Rnfse::API) }
@@ -37,28 +52,28 @@ describe Rnfse::API do
37
52
  its(:api) { should eq('iss_net_1_0') }
38
53
  end
39
54
 
40
- context 'ao passar o padrão abrasf, namespace e endpoint,' do
55
+ context 'SpeedGov ao passar um provedor e municipio,' do
41
56
  subject do
42
- Rnfse::API.new(padrao: :abrasf_1_0,
43
- namespace: 'http://www.issnetonline.com.br/webservice/nfd',
44
- endpoint: 'http://www.issnetonline.com.br/webserviceabrasf/homologacao/servicos.asmx',
45
- certificate: certificate,
46
- key: key)
57
+ Rnfse::API.new(provedor: :speed_gov,
58
+ municipio: :petrolina)
47
59
  end
60
+
48
61
  it { should be_kind_of(Rnfse::API) }
49
- its(:namespace) { should eq('http://www.issnetonline.com.br/webservice/nfd') }
50
- its(:endpoint) { should eq('http://www.issnetonline.com.br/webserviceabrasf/homologacao/servicos.asmx') }
51
- its(:api) { should eq('abrasf_1_0') }
62
+ its(:namespace) { should eq('http://ws.speedgov.com.br/') }
63
+ its(:endpoint) { should eq('http://www.speedgov.com.br/wspet/Nfes') }
64
+ its(:api) { should eq('speed_gov_1_0') }
52
65
  end
53
66
 
54
- context 'ao não passar informações válidas,' do
55
- it { expect { Rnfse::API.new() }.to raise_error(ArgumentError) }
56
- it { expect { Rnfse::API.new(error: 'error') }.to raise_error(ArgumentError) }
57
-
58
- context 'como provedor inexistente,' do
59
- it { expect { Rnfse::API.new(provedor: :none, municipio: :cuiaba) }.to raise_error(ArgumentError) }
60
- it { expect { Rnfse::API.new(provedor: :none, homologacao: true) }.to raise_error(ArgumentError) }
67
+ context 'SpeedGov ao passar um provedor em homologação' do
68
+ subject do
69
+ Rnfse::API.new(provedor: :speed_gov,
70
+ homologacao: true)
61
71
  end
72
+
73
+ it { should be_kind_of(Rnfse::API) }
74
+ its(:namespace) { should eq('http://ws.speedgov.com.br/') }
75
+ its(:endpoint) { should eq('http://speedgov.com.br/wsmod/Nfes') }
76
+ its(:api) { should eq('speed_gov_1_0') }
62
77
  end
63
78
 
64
79
  end