package csvimport import ( "strings" "testing" ) func TestParseOK(t *testing.T) { rows, err := Parse(strings.NewReader("a@x,p1,a@y,p2\nb@x,p3,b@y,p4\n")) if err != nil { t.Fatalf("parse: %v", err) } if len(rows) != 2 || rows[0].SrcLogin != "a@x" || rows[1].DstPass != "p4" { t.Fatalf("bad rows: %+v", rows) } } func TestParseRejectsBadColumns(t *testing.T) { if _, err := Parse(strings.NewReader("a,b,c\n")); err == nil { t.Fatal("3 columns must error") } } func TestParseRejectsDuplicateSrc(t *testing.T) { if _, err := Parse(strings.NewReader("a@x,p,a@y,p\na@x,q,c@y,q\n")); err == nil { t.Fatal("duplicate src_login must error") } } func TestParseRejectsEmptyField(t *testing.T) { if _, err := Parse(strings.NewReader("a@x,,a@y,p\n")); err == nil { t.Fatal("empty password must error") } }