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

Function TestImportOperationalUnits

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

Source from the content-addressed store, hash-verified

532}
533
534func TestImportOperationalUnits(t *testing.T) {
535 importer, cleanup := setupImporter(t)
536 defer cleanup()
537
538 tmpDir, err := os.MkdirTemp("", "uop-test-*")
539 require.NoError(t, err)
540 defer os.RemoveAll(tmpDir)
541
542 t.Run("import operational units successfully", func(t *testing.T) {
543 localities = make(map[string]*Localidade)
544 districts = make(map[string]*Bairro)
545 seenCEPs = make(map[string]bool)
546
547 localities["001"] = &Localidade{
548 Codigo: "001",
549 UF: "RJ",
550 Nome: "Rio de Janeiro",
551 CodigoIBGE: "3304557",
552 }
553 districts["002"] = &Bairro{
554 Codigo: "002",
555 Nome: "Copacabana",
556 }
557
558 uopFile := filepath.Join(tmpDir, "LOG_UNID_OPER.TXT")
559 content := "001@RJ@001@002@@Agência Central@Av Atlântica 1000@22070-000@CP@Ag Ctr\n"
560
561 // Encode content to ISO-8859-1
562 encoder := charmap.ISO8859_1.NewEncoder()
563 encodedContent, err := encoder.String(content)
564 require.NoError(t, err)
565
566 err = os.WriteFile(uopFile, []byte(encodedContent), 0644)
567 require.NoError(t, err)
568
569 count, err := importer.importOperationalUnits(uopFile)
570 assert.NoError(t, err)
571 assert.Equal(t, 1, count)
572
573 err = importer.db.View(func(txn *badger.Txn) error {
574 item, err := txn.Get([]byte("cep:22070000"))
575 if err != nil {
576 return err
577 }
578
579 return item.Value(func(val []byte) error {
580 var cep CEPCompleto
581 err := json.Unmarshal(val, &cep)
582 assert.NoError(t, err)
583 assert.Equal(t, "22070000", cep.CEP)
584 assert.Equal(t, "Av Atlântica 1000", cep.Logradouro)
585 assert.Equal(t, "Copacabana", cep.Bairro)
586 assert.Equal(t, "unid_oper", cep.TipoOrigem)
587 assert.Equal(t, "Agência Central", cep.NomeOrigem)
588 return nil
589 })
590 })
591 assert.NoError(t, err)

Callers

nothing calls this directly

Calls 2

setupImporterFunction · 0.85

Tested by

no test coverage detected