MCPcopy Create free account
hub / github.com/brasilcep/api / TestLoadLocalities

Function TestLoadLocalities

zipcodes/zipcodes_test.go:184–247  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

182}
183
184func TestLoadLocalities(t *testing.T) {
185 importer, cleanup := setupImporter(t)
186 defer cleanup()
187
188 tmpDir, err := os.MkdirTemp("", "localities-test-*")
189 require.NoError(t, err)
190 defer os.RemoveAll(tmpDir)
191
192 t.Run("load valid localities file", func(t *testing.T) {
193 localities = make(map[string]*Localidade)
194
195 localitiesFile := filepath.Join(tmpDir, "LOG_LOCALIDADE.TXT")
196 content := "001@SP@São Paulo@01000-000@1@M@@SP@3550308\n" +
197 "002@RJ@Rio de Janeiro@20000-000@1@M@@RJ@3304557\n" +
198 "003@MG@Belo Horizonte@30000-000@1@M@@BH@3106200\n"
199
200 // Encode content to ISO-8859-1
201 encoder := charmap.ISO8859_1.NewEncoder()
202 encodedContent, err := encoder.String(content)
203 require.NoError(t, err)
204
205 err = os.WriteFile(localitiesFile, []byte(encodedContent), 0644)
206 require.NoError(t, err)
207
208 err = importer.loadLocalities(localitiesFile)
209 assert.NoError(t, err)
210 assert.Equal(t, 3, len(localities))
211
212 sp := localities["001"]
213 assert.NotNil(t, sp)
214 assert.Equal(t, "SP", sp.UF)
215 assert.Equal(t, "São Paulo", sp.Nome)
216 assert.Equal(t, "01000000", sp.CEP)
217 assert.Equal(t, "3550308", sp.CodigoIBGE)
218 })
219
220 t.Run("skip invalid lines", func(t *testing.T) {
221 localities = make(map[string]*Localidade)
222
223 localitiesFile := filepath.Join(tmpDir, "LOG_LOCALIDADE_INVALID.TXT")
224 content := "001@SP@São Paulo@01000-000@1@M@@SP@3550308\n" +
225 "invalid line\n" +
226 "002@RJ\n" +
227 "003@MG@Belo Horizonte@30000-000@1@M@@BH@3106200\n"
228
229 // Encode content to ISO-8859-1
230 encoder := charmap.ISO8859_1.NewEncoder()
231 encodedContent, err := encoder.String(content)
232 require.NoError(t, err)
233
234 err = os.WriteFile(localitiesFile, []byte(encodedContent), 0644)
235 require.NoError(t, err)
236
237 err = importer.loadLocalities(localitiesFile)
238 assert.NoError(t, err)
239 assert.Equal(t, 2, len(localities))
240 })
241

Callers

nothing calls this directly

Calls 2

setupImporterFunction · 0.85
loadLocalitiesMethod · 0.80

Tested by

no test coverage detected