(t *testing.T)
| 182 | } |
| 183 | |
| 184 | func 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 |
nothing calls this directly
no test coverage detected