package simpleauth import ( "strings" "testing" ) func TestNewPassword(t *testing.T) { ThePassword := "ASimplePassword*23" password, err := NewPassword([]byte(ThePassword)) if err != nil { t.Fatalf("error: %v\n", err) } if !password.Matches([]byte(ThePassword)) { t.Fatalf("error: '%s' != '%+v'\n", ThePassword, password) } ThePassword = "notcomplexenough" password, err = NewPassword([]byte(ThePassword)) if err == nil { t.Fatalf("got nil error...\n") } else if password != nil { t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt) } ThePassword = "NOTCOMPLEXENOUGH" password, err = NewPassword([]byte(ThePassword)) if err == nil { t.Fatalf("got nil error...\n") } else if password != nil { t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt) } ThePassword = "" password, err = NewPassword([]byte(ThePassword)) if err == nil { t.Fatalf("got nil error...\n") } else if password != nil { t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt) } ThePassword = strings.Repeat("hello", 256) password, err = NewPassword([]byte(ThePassword)) if err == nil { t.Fatalf("got nil error...\n") } else if password != nil { t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt) } ThePassword = "*sdbksldKdf" password, err = NewPassword([]byte(ThePassword)) if err == nil { t.Fatalf("got nil error...\n") } else if password != nil { t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt) } } func TestPasswordStringMethod(t *testing.T) { password, err := NewPassword([]byte("*123ABcd")) if err != nil { t.Fatalf("error: %v\n", err) } if got := password.String(); !strings.Contains(got, "cowardly refusal") { t.Fatalf("error: got '%s' instead of 'cowardly refusal' message\n", got) } }