ibge-ruby 1.0.2

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 (127) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +79 -0
  6. data/README.md +155 -0
  7. data/Rakefile +1 -0
  8. data/ibge-ruby.gemspec +28 -0
  9. data/lib/ibge/distrito.rb +179 -0
  10. data/lib/ibge/mesorregiao.rb +92 -0
  11. data/lib/ibge/microrregiao.rb +110 -0
  12. data/lib/ibge/municipio.rb +164 -0
  13. data/lib/ibge/pais.rb +53 -0
  14. data/lib/ibge/regiao.rb +55 -0
  15. data/lib/ibge/regiao_imediata.rb +110 -0
  16. data/lib/ibge/regiao_intermediaria.rb +92 -0
  17. data/lib/ibge/subdistrito.rb +160 -0
  18. data/lib/ibge/uf.rb +73 -0
  19. data/lib/ibge/utils.rb +7 -0
  20. data/lib/ibge/version.rb +3 -0
  21. data/lib/ibge.rb +18 -0
  22. data/spec/lib/ibge/distrito_spec.rb +250 -0
  23. data/spec/lib/ibge/mesorregiao_spec.rb +144 -0
  24. data/spec/lib/ibge/microrregiao_spec.rb +166 -0
  25. data/spec/lib/ibge/municipio_spec.rb +228 -0
  26. data/spec/lib/ibge/pais_spec.rb +62 -0
  27. data/spec/lib/ibge/regiao_imediata_spec.rb +162 -0
  28. data/spec/lib/ibge/regiao_intermediaria_spec.rb +140 -0
  29. data/spec/lib/ibge/regiao_spec.rb +90 -0
  30. data/spec/lib/ibge/subdistrito_spec.rb +228 -0
  31. data/spec/lib/ibge/uf_spec.rb +130 -0
  32. data/spec/spec_helper.rb +28 -0
  33. data/spec/vcr_cassettes/distrito/distritos_por_id_230440005.yml +55 -0
  34. data/spec/vcr_cassettes/distrito/distritos_por_id_230440005_230370905.yml +47 -0
  35. data/spec/vcr_cassettes/distrito/distritos_por_mesorregiao_2303.yml +47 -0
  36. data/spec/vcr_cassettes/distrito/distritos_por_mesorregiao_2303_2304.yml +47 -0
  37. data/spec/vcr_cassettes/distrito/distritos_por_microrregiao_23016.yml +47 -0
  38. data/spec/vcr_cassettes/distrito/distritos_por_microrregiao_23016_23017.yml +47 -0
  39. data/spec/vcr_cassettes/distrito/distritos_por_municipio_2307254.yml +53 -0
  40. data/spec/vcr_cassettes/distrito/distritos_por_municipio_2307254_2302206.yml +47 -0
  41. data/spec/vcr_cassettes/distrito/distritos_por_regiao_NE.yml +47 -0
  42. data/spec/vcr_cassettes/distrito/distritos_por_regiao_N_NE.yml +47 -0
  43. data/spec/vcr_cassettes/distrito/distritos_por_regiao_imediata_230001.yml +47 -0
  44. data/spec/vcr_cassettes/distrito/distritos_por_regiao_imediata_230001_230002.yml +47 -0
  45. data/spec/vcr_cassettes/distrito/distritos_por_regiao_intermediaria_2301.yml +47 -0
  46. data/spec/vcr_cassettes/distrito/distritos_por_regiao_intermediaria_2301_2302.yml +47 -0
  47. data/spec/vcr_cassettes/distrito/distritos_por_uf_BA_CE.yml +47 -0
  48. data/spec/vcr_cassettes/distrito/distritos_por_uf_CE.yml +51 -0
  49. data/spec/vcr_cassettes/distrito/obter_distritos.yml +55 -0
  50. data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_id_2303.yml +47 -0
  51. data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_id_2303_2304.yml +47 -0
  52. data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_regiao_NE.yml +53 -0
  53. data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_regiao_N_NE.yml +47 -0
  54. data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_uf_BA_CE.yml +47 -0
  55. data/spec/vcr_cassettes/mesorregiao/mesorregioes_por_uf_CE.yml +49 -0
  56. data/spec/vcr_cassettes/mesorregiao/obter_mesorregioes.yml +55 -0
  57. data/spec/vcr_cassettes/microrregiao/microrregioes_por_id_23016.yml +47 -0
  58. data/spec/vcr_cassettes/microrregiao/microrregioes_por_id_23016_23017.yml +47 -0
  59. data/spec/vcr_cassettes/microrregiao/microrregioes_por_mesorregiao_2303.yml +55 -0
  60. data/spec/vcr_cassettes/microrregiao/microrregioes_por_mesorregiao_2303_2304.yml +47 -0
  61. data/spec/vcr_cassettes/microrregiao/microrregioes_por_regiao_NE.yml +47 -0
  62. data/spec/vcr_cassettes/microrregiao/microrregioes_por_regiao_N_NE.yml +47 -0
  63. data/spec/vcr_cassettes/microrregiao/microrregioes_por_uf_BA_CE.yml +47 -0
  64. data/spec/vcr_cassettes/microrregiao/microrregioes_por_uf_CE.yml +53 -0
  65. data/spec/vcr_cassettes/microrregiao/obter_microrregioes.yml +53 -0
  66. data/spec/vcr_cassettes/municipio/municipios_por_id_2307254.yml +53 -0
  67. data/spec/vcr_cassettes/municipio/municipios_por_id_2307254_2302206.yml +47 -0
  68. data/spec/vcr_cassettes/municipio/municipios_por_mesorregiao_2303.yml +47 -0
  69. data/spec/vcr_cassettes/municipio/municipios_por_mesorregiao_2303_2304.yml +47 -0
  70. data/spec/vcr_cassettes/municipio/municipios_por_microrregiao_23016.yml +47 -0
  71. data/spec/vcr_cassettes/municipio/municipios_por_microrregiao_23016_23017.yml +47 -0
  72. data/spec/vcr_cassettes/municipio/municipios_por_regiao_NE.yml +47 -0
  73. data/spec/vcr_cassettes/municipio/municipios_por_regiao_N_NE.yml +47 -0
  74. data/spec/vcr_cassettes/municipio/municipios_por_regiao_imediata_230001.yml +47 -0
  75. data/spec/vcr_cassettes/municipio/municipios_por_regiao_imediata_230001_230002.yml +47 -0
  76. data/spec/vcr_cassettes/municipio/municipios_por_regiao_intermediaria_2301.yml +47 -0
  77. data/spec/vcr_cassettes/municipio/municipios_por_regiao_intermediaria_2301_2302.yml +47 -0
  78. data/spec/vcr_cassettes/municipio/municipios_por_uf_BA_CE.yml +47 -0
  79. data/spec/vcr_cassettes/municipio/municipios_por_uf_CE.yml +51 -0
  80. data/spec/vcr_cassettes/municipio/obter_municipios.yml +51 -0
  81. data/spec/vcr_cassettes/pais/obter_paises.yml +53 -0
  82. data/spec/vcr_cassettes/pais/paises_por_identificador_76.yml +53 -0
  83. data/spec/vcr_cassettes/pais/paises_por_identificador_76_300.yml +47 -0
  84. data/spec/vcr_cassettes/regiao/obter_regioes.yml +53 -0
  85. data/spec/vcr_cassettes/regiao/regioes_por_identificador_NE.yml +48 -0
  86. data/spec/vcr_cassettes/regiao/regioes_por_identificador_N_NE.yml +48 -0
  87. data/spec/vcr_cassettes/regiao_imediata/obter_regioes_imediatas.yml +53 -0
  88. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_id_230001.yml +47 -0
  89. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_id_230001_230002.yml +47 -0
  90. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_intermediaria_2301.yml +47 -0
  91. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_intermediaria_2301_2302.yml +47 -0
  92. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_regiao_NE.yml +49 -0
  93. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_regiao_N_NE.yml +49 -0
  94. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_uf_BA_CE.yml +47 -0
  95. data/spec/vcr_cassettes/regiao_imediata/regioes_imediatas_por_uf_CE.yml +53 -0
  96. data/spec/vcr_cassettes/regiao_intermediaria/obter_regioes_intermediarias.yml +53 -0
  97. data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_id_2301.yml +47 -0
  98. data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_id_2301_2302.yml +47 -0
  99. data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_regiao_NE.yml +47 -0
  100. data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_regiao_N_NE.yml +47 -0
  101. data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_uf_BA_CE.yml +47 -0
  102. data/spec/vcr_cassettes/regiao_intermediaria/regioes_intermediarias_por_uf_CE.yml +47 -0
  103. data/spec/vcr_cassettes/subdistrito/obter_subdistritos.yml +53 -0
  104. data/spec/vcr_cassettes/subdistrito/subdistritos_por_distrito_230440005.yml +47 -0
  105. data/spec/vcr_cassettes/subdistrito/subdistritos_por_distrito_230440005_230370905.yml +47 -0
  106. data/spec/vcr_cassettes/subdistrito/subdistritos_por_id_23044000512.yml +49 -0
  107. data/spec/vcr_cassettes/subdistrito/subdistritos_por_id_23044000512_23044006511.yml +47 -0
  108. data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_23016.yml +46 -0
  109. data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_23016_23017.yml +46 -0
  110. data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_2303.yml +47 -0
  111. data/spec/vcr_cassettes/subdistrito/subdistritos_por_mesorregiao_2303_2304.yml +47 -0
  112. data/spec/vcr_cassettes/subdistrito/subdistritos_por_microrregiao_23016.yml +47 -0
  113. data/spec/vcr_cassettes/subdistrito/subdistritos_por_microrregiao_23016_23017.yml +47 -0
  114. data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2304400.yml +55 -0
  115. data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2304400_2927408.yml +47 -0
  116. data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2307254.yml +46 -0
  117. data/spec/vcr_cassettes/subdistrito/subdistritos_por_municipio_2307254_2302206.yml +46 -0
  118. data/spec/vcr_cassettes/subdistrito/subdistritos_por_regiao_NE.yml +47 -0
  119. data/spec/vcr_cassettes/subdistrito/subdistritos_por_regiao_N_NE.yml +47 -0
  120. data/spec/vcr_cassettes/subdistrito/subdistritos_por_uf_BA_CE.yml +47 -0
  121. data/spec/vcr_cassettes/subdistrito/subdistritos_por_uf_CE.yml +53 -0
  122. data/spec/vcr_cassettes/uf/obter_ufs.yml +51 -0
  123. data/spec/vcr_cassettes/uf/ufs_por_identificador_BA_CE.yml +47 -0
  124. data/spec/vcr_cassettes/uf/ufs_por_identificador_CE.yml +55 -0
  125. data/spec/vcr_cassettes/uf/ufs_por_regiao_N.yml +53 -0
  126. data/spec/vcr_cassettes/uf/ufs_por_regiao_N_NE.yml +47 -0
  127. metadata +384 -0
@@ -0,0 +1,228 @@
1
+ describe IBGE::Municipio do
2
+ shared_examples_for 'objeto' do
3
+ it 'deve retornar o nome Jijoca de Jericoacoara' do
4
+ expect(subject.nome).to eq('Jijoca de Jericoacoara')
5
+ end
6
+
7
+ it 'deve retornar o ID 2307254' do
8
+ expect(subject.id).to eq('2307254')
9
+ end
10
+
11
+ it 'deve retornar a microrregião, que é um objeto IBGE::Microrregiao' do
12
+ expect(subject.microrregiao).to be_an IBGE::Microrregiao
13
+ end
14
+ end
15
+
16
+ shared_examples_for 'array' do |tamanho|
17
+ it 'deve retornar um Array<IBGE::Municipio>' do
18
+ aggregate_failures do
19
+ is_expected.to be_an Array
20
+ expect(subject.first).to be_an IBGE::Municipio
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '.obter_municipios' do
26
+ subject do
27
+ VCR.use_cassette('municipio/obter_municipios') do
28
+ IBGE::Municipio.obter_municipios
29
+ end
30
+ end
31
+
32
+ it_has_behavior 'array'
33
+ end
34
+
35
+ describe '.municipios_por_id' do
36
+ context 'recebendo um array de IDs (["2307254", "2302206"]) como parâmetro' do
37
+ subject do
38
+ VCR.use_cassette('municipio/municipios_por_id:2307254|2302206', erb: { param: '2307254%7C2302206' }) do
39
+ IBGE::Municipio.municipios_por_id(%w(2307254 2302206))
40
+ end
41
+ end
42
+
43
+ it_has_behavior 'array'
44
+ end
45
+
46
+ context 'recebendo um ID ("2307254") como parâmetro' do
47
+ subject do
48
+ VCR.use_cassette('municipio/municipios_por_id:2307254', erb: { param: '2307254' }) do
49
+ IBGE::Municipio.municipios_por_id('2307254')
50
+ end
51
+ end
52
+
53
+ it_has_behavior 'objeto'
54
+ end
55
+ end
56
+
57
+ describe '.municipios_por_uf' do
58
+ context 'recebendo um array de siglas (["BA", "CE"]) como parâmetro' do
59
+ subject do
60
+ VCR.use_cassette('municipio/municipios_por_uf:BA|CE', erb: { param: 'BA%7CCE' }) do
61
+ IBGE::Municipio.municipios_por_uf(%w(BA CE)).first(20)
62
+ end
63
+ end
64
+
65
+ it_has_behavior 'array'
66
+ end
67
+
68
+ context 'recebendo um array de IDs ([29, 23]) como parâmetro' do
69
+ subject do
70
+ VCR.use_cassette('municipio/municipios_por_uf:BA|CE', erb: { param: '29%7C23' }) do
71
+ IBGE::Municipio.municipios_por_uf([29, 23]).first(20)
72
+ end
73
+ end
74
+
75
+ it_has_behavior 'array'
76
+ end
77
+
78
+ context 'recebendo uma sigla (CE) como parâmetro' do
79
+ subject do
80
+ VCR.use_cassette('municipio/municipios_por_uf:CE', erb: { param: 'CE' }) do
81
+ IBGE::Municipio.municipios_por_uf('CE')
82
+ end
83
+ end
84
+
85
+ it_has_behavior 'array'
86
+ end
87
+
88
+ context 'recebendo um ID (23) como parâmetro' do
89
+ subject do
90
+ VCR.use_cassette('municipio/municipios_por_uf:CE', erb: { param: 23 }) do
91
+ IBGE::Municipio.municipios_por_uf(23)
92
+ end
93
+ end
94
+
95
+ it_has_behavior 'array'
96
+ end
97
+ end
98
+
99
+ describe '.municipios_por_regiao' do
100
+ context 'recebendo um array de siglas (["N", "NE"]) como parâmetro' do
101
+ subject do
102
+ VCR.use_cassette('municipio/municipios_por_regiao:N|NE', erb: { param: 'N%7CNE' }) do
103
+ IBGE::Municipio.municipios_por_regiao(%w(N NE))
104
+ end
105
+ end
106
+
107
+ it_has_behavior 'array'
108
+ end
109
+
110
+ context 'recebendo um array de IDs ([1, 2]) como parâmetro' do
111
+ subject do
112
+ VCR.use_cassette('municipio/municipios_por_regiao:N|NE', erb: { param: '1%7C2' }) do
113
+ IBGE::Municipio.municipios_por_regiao([1, 2])
114
+ end
115
+ end
116
+
117
+ it_has_behavior 'array'
118
+ end
119
+
120
+ context 'recebendo um ID (2) como parâmetro' do
121
+ subject do
122
+ VCR.use_cassette('municipio/municipios_por_regiao:NE', erb: { param: 2 }) do
123
+ IBGE::Municipio.municipios_por_regiao(2)
124
+ end
125
+ end
126
+
127
+ it_has_behavior 'array'
128
+ end
129
+
130
+ context 'recebendo uma sigla (NE) como parâmetro' do
131
+ subject do
132
+ VCR.use_cassette('municipio/municipios_por_regiao:NE', erb: { param: 'NE' }) do
133
+ IBGE::Municipio.municipios_por_regiao('NE')
134
+ end
135
+ end
136
+
137
+ it_has_behavior 'array'
138
+ end
139
+ end
140
+
141
+ describe '.municipios_por_regiao_imediata' do
142
+ context 'recebendo um array de IDs ([230001, 230002]) como parâmetro' do
143
+ subject do
144
+ VCR.use_cassette('municipio/municipios_por_regiao_imediata:230001|230002', erb: { param: '230001%7C230002' }) do
145
+ IBGE::Municipio.municipios_por_regiao_imediata([230001, 230002])
146
+ end
147
+ end
148
+
149
+ it_has_behavior 'array'
150
+ end
151
+
152
+ context 'recebendo um ID (230001) como parâmetro' do
153
+ subject do
154
+ VCR.use_cassette('municipio/municipios_por_regiao_imediata:230001', erb: { param: '230001' }) do
155
+ IBGE::Municipio.municipios_por_regiao_imediata(230001)
156
+ end
157
+ end
158
+
159
+ it_has_behavior 'array'
160
+ end
161
+ end
162
+
163
+ describe '.municipios_por_regiao_intermediaria' do
164
+ context 'recebendo um array de IDs ([2301, 2302]) como parâmetro' do
165
+ subject do
166
+ VCR.use_cassette('municipio/municipios_por_regiao_intermediaria:2301|2302', erb: { param: '2301%7C23017' }) do
167
+ IBGE::Municipio.municipios_por_regiao_intermediaria([2301, 2302])
168
+ end
169
+ end
170
+
171
+ it_has_behavior 'array'
172
+ end
173
+
174
+ context 'recebendo um ID (2301) como parâmetro' do
175
+ subject do
176
+ VCR.use_cassette('municipio/municipios_por_regiao_intermediaria:2301', erb: { param: '2301' }) do
177
+ IBGE::Municipio.municipios_por_regiao_intermediaria(2301)
178
+ end
179
+ end
180
+
181
+ it_has_behavior 'array'
182
+ end
183
+ end
184
+
185
+ describe '.municipios_por_mesorregiao' do
186
+ context 'recebendo um array de IDs ([2303, 2304]) como parâmetro' do
187
+ subject do
188
+ VCR.use_cassette('municipio/municipios_por_mesorregiao:2303|2304', erb: { param: '2303%7C2304' }) do
189
+ IBGE::Municipio.municipios_por_mesorregiao([2303, 2304])
190
+ end
191
+ end
192
+
193
+ it_has_behavior 'array'
194
+ end
195
+
196
+ context 'recebendo um ID (2303) como parâmetro' do
197
+ subject do
198
+ VCR.use_cassette('municipio/municipios_por_mesorregiao:2303', erb: { param: '2303' }) do
199
+ IBGE::Municipio.municipios_por_mesorregiao(2303)
200
+ end
201
+ end
202
+
203
+ it_has_behavior 'array'
204
+ end
205
+ end
206
+
207
+ describe '.municipios_por_microrregiao' do
208
+ context 'recebendo um array de IDs ([23016, 23017]) como parâmetro' do
209
+ subject do
210
+ VCR.use_cassette('municipio/municipios_por_microrregiao:23016|23017', erb: { param: '23016%7C23017' }) do
211
+ IBGE::Municipio.municipios_por_microrregiao([23016, 23017])
212
+ end
213
+ end
214
+
215
+ it_has_behavior 'array'
216
+ end
217
+
218
+ context 'recebendo um ID (23016) como parâmetro' do
219
+ subject do
220
+ VCR.use_cassette('municipio/municipios_por_microrregiao:23016', erb: { param: '23016' }) do
221
+ IBGE::Municipio.municipios_por_microrregiao(23016)
222
+ end
223
+ end
224
+
225
+ it_has_behavior 'array'
226
+ end
227
+ end
228
+ end
@@ -0,0 +1,62 @@
1
+ describe IBGE::Pais do
2
+ shared_examples_for 'pais' do
3
+ it 'deve retornar o nome Brasil' do
4
+ expect(subject.first.nome).to eq('Brasil')
5
+ end
6
+
7
+ it 'deve retornar o ID (M49) 76' do
8
+ expect(subject.first.id['M49']).to eq(76)
9
+ end
10
+
11
+ it 'deve retornar a sigla (ISO-ALPHA-2) BR' do
12
+ expect(subject.first.id['ISO-ALPHA-2']).to eq('BR')
13
+ end
14
+
15
+ it 'deve retornar América do sul como região intermediária' do
16
+ expect(subject.first.regiao_intermediaria['nome']).to eq('América do sul')
17
+ end
18
+ end
19
+
20
+ shared_examples_for 'array' do
21
+ it 'deve retornar um Array<IBGE::Pais>' do
22
+ aggregate_failures do
23
+ is_expected.to be_an Array
24
+ expect(subject.first).to be_an IBGE::Pais
25
+ end
26
+ end
27
+ end
28
+
29
+ describe '.obter_paises' do
30
+ subject do
31
+ VCR.use_cassette('pais/obter_paises') do
32
+ IBGE::Pais.obter_paises
33
+ end
34
+ end
35
+
36
+ it_has_behavior 'array'
37
+ end
38
+
39
+ describe '.paises_por_identificador' do
40
+ context 'recebendo um array de IDs ([76, 300]) como parâmetro' do
41
+ subject do
42
+ VCR.use_cassette('pais/paises_por_identificador:76|300', erb: { param: '76%7C300' }) do
43
+ IBGE::Pais.paises_por_identificador([76, 300])
44
+ end
45
+ end
46
+
47
+ it_has_behavior 'array'
48
+ it_has_behavior 'pais'
49
+ end
50
+
51
+ context 'recebendo um ID (76) como parâmetro' do
52
+ subject do
53
+ VCR.use_cassette('pais/paises_por_identificador:76', erb: { param: 76 }) do
54
+ IBGE::Pais.paises_por_identificador(76)
55
+ end
56
+ end
57
+
58
+ it_has_behavior 'array'
59
+ it_has_behavior 'pais'
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,162 @@
1
+ describe IBGE::RegiaoImediata do
2
+ shared_examples_for 'objeto' do
3
+ it 'deve retornar o nome Fortaleza' do
4
+ expect(subject.nome).to eq('Fortaleza')
5
+ end
6
+
7
+ it 'deve retornar o ID 230001' do
8
+ expect(subject.id).to eq(230001)
9
+ end
10
+
11
+ it 'deve retornar a região intermediária, que é um objeto IBGE::RegiaoIntermediaria' do
12
+ expect(subject.regiao_intermediaria).to be_an IBGE::RegiaoIntermediaria
13
+ end
14
+ end
15
+
16
+ shared_examples_for 'array' do
17
+ it 'deve retornar um Array<IBGE::RegiaoImediata>' do
18
+ aggregate_failures do
19
+ is_expected.to be_an Array
20
+ expect(subject.first).to be_an IBGE::RegiaoImediata
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '.obter_regioes_imediatas' do
26
+ subject do
27
+ VCR.use_cassette('regiao_imediata/obter_regioes_imediatas') do
28
+ IBGE::RegiaoImediata.obter_regioes_imediatas
29
+ end
30
+ end
31
+
32
+ it_has_behavior 'array'
33
+ end
34
+
35
+ describe '.regioes_imediatas_por_id' do
36
+ context 'recebendo um array de IDs ([230001, 230002]) como parâmetro' do
37
+ subject do
38
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_id:230001|230002', erb: { param: '230001%7C230002' }) do
39
+ IBGE::RegiaoImediata.regioes_imediatas_por_id([230001, 230002])
40
+ end
41
+ end
42
+
43
+ it_has_behavior 'array'
44
+ end
45
+
46
+ context 'recebendo um ID (230001) como parâmetro' do
47
+ subject do
48
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_id:230001', erb: { param: '230001' }) do
49
+ IBGE::RegiaoImediata.regioes_imediatas_por_id(230001)
50
+ end
51
+ end
52
+
53
+ it_has_behavior 'objeto'
54
+ end
55
+ end
56
+
57
+ describe '.regioes_imediatas_por_uf' do
58
+ context 'recebendo um array de siglas (["BA", "CE"]) como parâmetro' do
59
+ subject do
60
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_uf:BA|CE', erb: { param: 'BA%7CCE' }) do
61
+ IBGE::RegiaoImediata.regioes_imediatas_por_uf(%w(BA CE))
62
+ end
63
+ end
64
+
65
+ it_has_behavior 'array'
66
+ end
67
+
68
+ context 'recebendo um array de IDs ([29, 23]) como parâmetro' do
69
+ subject do
70
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_uf:BA|CE', erb: { param: '29%7C23' }) do
71
+ IBGE::RegiaoImediata.regioes_imediatas_por_uf([29, 23])
72
+ end
73
+ end
74
+
75
+ it_has_behavior 'array'
76
+ end
77
+
78
+ context 'recebendo uma sigla (CE) como parâmetro' do
79
+ subject do
80
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_uf:CE', erb: { param: 'CE' }) do
81
+ IBGE::RegiaoImediata.regioes_imediatas_por_uf('CE')
82
+ end
83
+ end
84
+
85
+ it_has_behavior 'array'
86
+ end
87
+
88
+ context 'recebendo um ID (23) como parâmetro' do
89
+ subject do
90
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_uf:CE', erb: { param: 23 }) do
91
+ IBGE::RegiaoImediata.regioes_imediatas_por_uf(23)
92
+ end
93
+ end
94
+
95
+ it_has_behavior 'array'
96
+ end
97
+ end
98
+
99
+ describe '.regioes_imediatas_por_regiao' do
100
+ context 'recebendo um array de siglas (["N", "NE"]) como parâmetro' do
101
+ subject do
102
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_regiao:N|NE', erb: { param: 'N%7CNE' }) do
103
+ IBGE::RegiaoImediata.regioes_imediatas_por_regiao(%w(N NE))
104
+ end
105
+ end
106
+
107
+ it_has_behavior 'array'
108
+ end
109
+
110
+ context 'recebendo um array de IDs ([1, 2]) como parâmetro' do
111
+ subject do
112
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_regiao:N|NE', erb: { param: '1%7C2' }) do
113
+ IBGE::RegiaoImediata.regioes_imediatas_por_regiao([1, 2])
114
+ end
115
+ end
116
+
117
+ it_has_behavior 'array'
118
+ end
119
+
120
+ context 'recebendo um ID (2) como parâmetro' do
121
+ subject do
122
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_regiao:NE', erb: { param: 2 }) do
123
+ IBGE::RegiaoImediata.regioes_imediatas_por_regiao(2)
124
+ end
125
+ end
126
+
127
+ it_has_behavior 'array'
128
+ end
129
+
130
+ context 'recebendo uma sigla (NE) como parâmetro' do
131
+ subject do
132
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_regiao:NE', erb: { param: 'NE' }) do
133
+ IBGE::RegiaoImediata.regioes_imediatas_por_regiao('NE')
134
+ end
135
+ end
136
+
137
+ it_has_behavior 'array'
138
+ end
139
+ end
140
+
141
+ describe '.regioes_imediatas_por_intermediaria' do
142
+ context 'recebendo um array de IDs ([2301, 2302]) como parâmetro' do
143
+ subject do
144
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_intermediaria:2301|2302', erb: { param: '2301%7C23017' }) do
145
+ IBGE::RegiaoImediata.regioes_imediatas_por_intermediaria([2301, 2302])
146
+ end
147
+ end
148
+
149
+ it_has_behavior 'array'
150
+ end
151
+
152
+ context 'recebendo um ID (2301) como parâmetro' do
153
+ subject do
154
+ VCR.use_cassette('regiao_imediata/regioes_imediatas_por_intermediaria:2301', erb: { param: '2301' }) do
155
+ IBGE::RegiaoImediata.regioes_imediatas_por_intermediaria(2301)
156
+ end
157
+ end
158
+
159
+ it_has_behavior 'array'
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,140 @@
1
+ describe IBGE::RegiaoIntermediaria do
2
+ shared_examples_for 'objeto' do
3
+ it 'deve retornar o nome Fortaleza' do
4
+ expect(subject.nome).to eq('Fortaleza')
5
+ end
6
+
7
+ it 'deve retornar o ID 2301' do
8
+ expect(subject.id).to eq(2301)
9
+ end
10
+
11
+ it 'deve retornar a UF, que é um objeto IBGE::UF' do
12
+ expect(subject.uf).to be_an IBGE::UF
13
+ end
14
+ end
15
+
16
+ shared_examples_for 'array' do
17
+ it 'deve retornar um Array<IBGE::RegiaoIntermediaria>' do
18
+ aggregate_failures do
19
+ is_expected.to be_an Array
20
+ expect(subject.first).to be_an IBGE::RegiaoIntermediaria
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '.obter_regioes_intermediarias' do
26
+ subject do
27
+ VCR.use_cassette('regiao_intermediaria/obter_regioes_intermediarias') do
28
+ IBGE::RegiaoIntermediaria.obter_regioes_intermediarias
29
+ end
30
+ end
31
+
32
+ it_has_behavior 'array'
33
+ end
34
+
35
+ describe '.regioes_intermediarias_por_id' do
36
+ context 'recebendo um array de IDs ([2301, 2302]) como parâmetro' do
37
+ subject do
38
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_id:2301|2302', erb: { param: '2301%7C2302' }) do
39
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_id([2301, 2302])
40
+ end
41
+ end
42
+
43
+ it_has_behavior 'array'
44
+ end
45
+
46
+ context 'recebendo um ID (2301) como parâmetro' do
47
+ subject do
48
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_id:2301', erb: { param: '2301' }) do
49
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_id(2301)
50
+ end
51
+ end
52
+
53
+ it_has_behavior 'objeto'
54
+ end
55
+ end
56
+
57
+ describe '.regioes_intermediarias_por_uf' do
58
+ context 'recebendo um array de siglas (["BA", "CE"]) como parâmetro' do
59
+ subject do
60
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_uf:BA|CE', erb: { param: 'BA%7CCE' }) do
61
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf(%w(BA CE))
62
+ end
63
+ end
64
+
65
+ it_has_behavior 'array'
66
+ end
67
+
68
+ context 'recebendo um array de IDs ([29, 23]) como parâmetro' do
69
+ subject do
70
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_uf:BA|CE', erb: { param: '29%7C23' }) do
71
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf([29, 23])
72
+ end
73
+ end
74
+
75
+ it_has_behavior 'array'
76
+ end
77
+
78
+ context 'recebendo uma sigla (CE) como parâmetro' do
79
+ subject do
80
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_uf:CE', erb: { param: 'CE' }) do
81
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf('CE')
82
+ end
83
+ end
84
+
85
+ it_has_behavior 'array'
86
+ end
87
+
88
+ context 'recebendo um ID (23) como parâmetro' do
89
+ subject do
90
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_uf:CE', erb: { param: 23 }) do
91
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_uf(23)
92
+ end
93
+ end
94
+
95
+ it_has_behavior 'array'
96
+ end
97
+ end
98
+
99
+ describe '.regioes_intermediarias_por_regiao' do
100
+ context 'recebendo um array de siglas (["N", "NE"]) como parâmetro' do
101
+ subject do
102
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_regiao:N|NE', erb: { param: 'N%7CNE' }) do
103
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao(%w(N NE))
104
+ end
105
+ end
106
+
107
+ it_has_behavior 'array'
108
+ end
109
+
110
+ context 'recebendo um array de IDs ([1, 2]) como parâmetro' do
111
+ subject do
112
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_regiao:N|NE', erb: { param: '1%7C2' }) do
113
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao([1, 2])
114
+ end
115
+ end
116
+
117
+ it_has_behavior 'array'
118
+ end
119
+
120
+ context 'recebendo um ID (2) como parâmetro' do
121
+ subject do
122
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_regiao:NE', erb: { param: 2 }) do
123
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao(2)
124
+ end
125
+ end
126
+
127
+ it_has_behavior 'array'
128
+ end
129
+
130
+ context 'recebendo uma sigla (NE) como parâmetro' do
131
+ subject do
132
+ VCR.use_cassette('regiao_intermediaria/regioes_intermediarias_por_regiao:NE', erb: { param: 'NE' }) do
133
+ IBGE::RegiaoIntermediaria.regioes_intermediarias_por_regiao('NE')
134
+ end
135
+ end
136
+
137
+ it_has_behavior 'array'
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,90 @@
1
+ describe IBGE::Regiao do
2
+ describe '.obter_regioes' do
3
+ subject do
4
+ VCR.use_cassette('regiao/obter_regioes') do
5
+ IBGE::Regiao.obter_regioes
6
+ end
7
+ end
8
+
9
+ it 'deve retornar um Array<IBGE::Regiao>' do
10
+ aggregate_failures do
11
+ is_expected.to be_an Array
12
+ expect(subject.first).to be_an IBGE::Regiao
13
+ end
14
+ end
15
+ end
16
+
17
+ describe '.regioes_por_identificador' do
18
+ shared_examples_for 'array' do
19
+ it 'deve retornar um Array' do
20
+ is_expected.to be_an Array
21
+ end
22
+
23
+ it 'deve possuir o tamanho 2' do
24
+ expect(subject.size).to eq(2)
25
+ end
26
+
27
+ it 'deve retornar as siglas NE e N' do
28
+ expect(subject.map(&:sigla)).to eq(['N', 'NE'])
29
+ end
30
+ end
31
+
32
+ context 'recebendo um array de siglas (["N", "NE"]) como parâmetro' do
33
+ subject do
34
+ VCR.use_cassette('regiao/regioes_por_identificador:N|NE', erb: { param: 'N%7CNE' }) do
35
+ IBGE::Regiao.regioes_por_identificador(%w(N NE))
36
+ end
37
+ end
38
+
39
+ it_has_behavior 'array'
40
+ end
41
+
42
+ context 'recebendo um array de IDs ([1, 2]) como parâmetro' do
43
+ subject do
44
+ VCR.use_cassette('regiao/regioes_por_identificador:N|NE', erb: { param: '1%7C2' }) do
45
+ IBGE::Regiao.regioes_por_identificador([1, 2])
46
+ end
47
+ end
48
+
49
+ it_has_behavior 'array'
50
+ end
51
+
52
+ shared_examples_for 'objeto' do
53
+ it 'deve retornar um objeto IBGE::Regiao' do
54
+ is_expected.to be_an IBGE::Regiao
55
+ end
56
+
57
+ it 'deve retornar o nome Nordeste' do
58
+ expect(subject.nome).to eq('Nordeste')
59
+ end
60
+
61
+ it 'deve retornar o ID 2' do
62
+ expect(subject.id).to eq(2)
63
+ end
64
+
65
+ it 'deve retornar a sigla NE' do
66
+ expect(subject.sigla).to eq('NE')
67
+ end
68
+ end
69
+
70
+ context 'recebendo uma sigla (NE) como parâmetro' do
71
+ subject do
72
+ VCR.use_cassette('regiao/regioes_por_identificador:NE', erb: { param: 'NE' }) do
73
+ IBGE::Regiao.regioes_por_identificador('NE')
74
+ end
75
+ end
76
+
77
+ it_has_behavior 'objeto'
78
+ end
79
+
80
+ context 'recebendo um ID (2) como parâmetro' do
81
+ subject do
82
+ VCR.use_cassette('regiao/regioes_por_identificador:NE', erb: { param: 2 }) do
83
+ IBGE::Regiao.regioes_por_identificador(2)
84
+ end
85
+ end
86
+
87
+ it_has_behavior 'objeto'
88
+ end
89
+ end
90
+ end