--- /dev/null
+package main
+
+import (
+ "testing"
+)
+
+var argon2iParams = "v=19$m=32768,t=3,p=4$ZjY5MDA5MGVlYjM0Yjg2Nw$hS8nOADanSJkVd9x5qZ0JG6Vsj/qG3gUWCqhJdr2A3c"
+
+func TestSHA256(t *testing.T) {
+ algorithm, auther, err := strToAuther("$sha256$a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3")
+ if err != nil {
+ t.FailNow()
+ }
+ if algorithm != "sha256" {
+ t.FailNow()
+ }
+ if !auther.Auth("123") {
+ t.FailNow()
+ }
+ if auther.Auth("1234") {
+ t.FailNow()
+ }
+}
+
+func TestArgon2i(t *testing.T) {
+ algorithm, auther, err := strToAuther("$argon2i$" + argon2iParams)
+ if err != nil {
+ t.FailNow()
+ }
+ if algorithm != "argon2i" {
+ t.FailNow()
+ }
+ if !auther.Auth("123") {
+ t.FailNow()
+ }
+ if auther.Auth("1234") {
+ t.FailNow()
+ }
+}
+
+func BenchmarkParseArgon2i(b *testing.B) {
+ for i := 0; i < b.N; i++ {
+ parseArgon2i(argon2iParams)
+ }
+}