rnfse 0.3.0 → 0.5.0

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 (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