diff options
Diffstat (limited to 'pkg/auth/sip2/spec_test.go')
-rw-r--r-- | pkg/auth/sip2/spec_test.go | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/pkg/auth/sip2/spec_test.go b/pkg/auth/sip2/spec_test.go new file mode 100644 index 0000000..92fbdd9 --- /dev/null +++ b/pkg/auth/sip2/spec_test.go @@ -0,0 +1,66 @@ +package sip2 + +import ( + "testing" +) + +const ( + invalidCard = "24YYYY 00020200220 173142AE|AAaaaa|BLN|AFInvalid cardnumber|AOtestlibrary|" + invalidPass = "24 00020200221 185454AE MrUser|AA01000|BLY|CQN|AFGreetings from Koha. -- Invalid password|AOtestlibrary|" + authOK = "24 00020200224 172540AE MrUser|AA01000|BLY|CQY|AFGreetings from Koha. |AOtestlibrary|" + statusOK = "98YYYYNN10000520200221 1853422.00AOtestlibrary|BXYYYYYYYYYYYNYYYY|" +) + +func doParse(txt string) (*message, error) { + p := getParser() + msg, err := p.parseMessage(txt) + return msg, err +} + +func TestInvalidCard(t *testing.T) { + msg, err := doParse(invalidCard) + if err != nil { + t.Fatal("unexpected error", err) + } + validUser, err := isValidUser(msg) + if validUser == true { + t.Fatal("expected invalid user") + } +} + +func TestInvalidPass(t *testing.T) { + msg, err := doParse(invalidPass) + if err != nil { + t.Fatal("unexpected error", err) + } + validPass, err := isValidPassword(msg) + if validPass == true { + t.Fatal("expected invalid pas") + } +} + +func TestAuthOK(t *testing.T) { + msg, err := doParse(authOK) + if err != nil { + t.Fatal("unexpected error", err) + } + validUser, err := isValidUser(msg) + if validUser != true { + t.Fatal("expected valid user") + } + validPass, err := isValidPassword(msg) + if validPass != true { + t.Fatal("expected valid pass") + } +} + +func TestStatusOK(t *testing.T) { + msg, err := doParse(statusOK) + if err != nil { + t.Fatal("unexpected error", err) + } + proto, _ := msg.getFixedFieldValue(protocolVersion) + if proto != "2.00" { + t.Fatal("expected protocol 2.00") + } +} |