diff options
Diffstat (limited to 'record/bulder/builder_test.go')
-rw-r--r-- | record/bulder/builder_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/record/bulder/builder_test.go b/record/bulder/builder_test.go index 2fa30e9..6fb525d 100644 --- a/record/bulder/builder_test.go +++ b/record/bulder/builder_test.go @@ -49,3 +49,44 @@ func TestRead(t *testing.T) { } } } + +func TestRead2(t *testing.T) { + // Different format + in := `Dato;Inn på konto;Ut fra konto;Til konto;Til kontonummer;Fra konto;Fra kontonummer;Type;Tekst;KID;Hovedkategori;Underkategori +2022-10-25;;-1050,00;;til kontonr. 11;fra konto 1;til kontonr. 1;Betaling;Vare 1;min kid;kategori 1;underkategori 1 +2022-10-25;;-2500,00;min konto 22;mitt kontonr. 2;fra konto 2;fra kontonr. 2;Betaling;Nedbetaling Lån;;Hus og hjem;Lån +` + r := NewReader(strings.NewReader(in)) + rs, err := r.Read() + if err != nil { + t.Fatal(err) + } + + var tests = []struct { + t time.Time + text string + amount int64 + balance int64 + }{ + {date(2022, 10, 25), "Betaling,Vare 1,kategori 1,underkategori 1", -105000, 0}, + {date(2022, 10, 25), "Betaling,Nedbetaling Lån,Hus og hjem,Lån", -250000, 0}, + } + if len(rs) != len(tests) { + t.Fatalf("want %d records, got %d", len(tests), len(rs)) + } + + for i, tt := range tests { + if !rs[i].Time.Equal(tt.t) { + t.Errorf("#%d: want Time = %s, got %s", i, tt.t, rs[i].Time) + } + if rs[i].Text != tt.text { + t.Errorf("#%d: want Text = %q, got %q", i, tt.text, rs[i].Text) + } + if rs[i].Amount != tt.amount { + t.Errorf("#%d: want Amount = %d, got %d", i, tt.amount, rs[i].Amount) + } + if rs[i].Balance != tt.balance { + t.Errorf("#%d: want Balance = %d, got %d", i, tt.balance, rs[i].Balance) + } + } +} |