Skip to content

Commit ac6158f

Browse files
committed
Tests writeJSONs
1 parent 4cccbfc commit ac6158f

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

transformnext/writer_test.go

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package transformnext
2+
3+
import (
4+
"context"
5+
"sync"
6+
"testing"
7+
)
8+
9+
type testDB struct {
10+
lock sync.Mutex
11+
data map[string]string
12+
}
13+
14+
func (db *testDB) PreLoad() error {
15+
db.lock.Lock()
16+
defer db.lock.Unlock()
17+
db.data = make(map[string]string)
18+
return nil
19+
}
20+
21+
func (db *testDB) CreateCompanies(companies [][]string) error {
22+
db.lock.Lock()
23+
defer db.lock.Unlock()
24+
for _, c := range companies {
25+
db.data[c[0]] = c[1]
26+
}
27+
return nil
28+
}
29+
30+
func (db *testDB) PostLoad() error {
31+
return nil
32+
}
33+
34+
func (db *testDB) CreateExtraIndexes(indexes []string) error {
35+
return nil
36+
}
37+
38+
func (db *testDB) MetaSave(key, value string) error {
39+
db.lock.Lock()
40+
defer db.lock.Unlock()
41+
db.data[key] = value
42+
return nil
43+
}
44+
45+
func TestWriteJSONs(t *testing.T) {
46+
ctx := context.Background()
47+
srcs := sources()
48+
kv, err := newBadger(t.TempDir(), false)
49+
if err != nil {
50+
t.Fatalf("expected no error creating badger, got %s", err)
51+
}
52+
defer func() {
53+
if err := kv.db.Close(); err != nil {
54+
t.Errorf("expected no error closing badger, got %s", err)
55+
}
56+
}()
57+
for key, src := range srcs {
58+
if key == "est" {
59+
continue
60+
}
61+
if err := loadCSVs(ctx, "../testdata", src, nil, kv); err != nil {
62+
t.Fatalf("expected no error loading %s data, got %s", key, err)
63+
}
64+
}
65+
db := &testDB{}
66+
if err := db.PreLoad(); err != nil {
67+
t.Fatalf("expected no error calling PreLoad, got %s", err)
68+
}
69+
err = writeJSONs(ctx, srcs, kv, db, 16, 8192, "../testdata", false)
70+
if err != nil {
71+
t.Fatalf("expected no error processing test data, got %s", err)
72+
}
73+
db.lock.Lock()
74+
defer db.lock.Unlock()
75+
if len(db.data) != 1 {
76+
t.Errorf("expected 1 company to be persisted, got %d", len(db.data))
77+
}
78+
exp := "33683111000280"
79+
if _, ok := db.data[exp]; !ok {
80+
t.Errorf("expected CNPJ %s to be persisted, got nil", exp)
81+
}
82+
}

0 commit comments

Comments
 (0)