mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
lib/auth: follow-up after b6a6a659f4
This commit is contained in:
parent
b6a6a659f4
commit
892c97e350
1 changed files with 61 additions and 43 deletions
|
@ -6,54 +6,72 @@ import (
|
|||
)
|
||||
|
||||
func TestNewTokenSuccess(t *testing.T) {
|
||||
f := func(name string, token string, want string) {
|
||||
f := func(token string, want string) {
|
||||
t.Helper()
|
||||
t.Run(name, func(t *testing.T) {
|
||||
newToken, err := NewToken(token)
|
||||
if err != nil {
|
||||
t.Fatalf("expecting nil error")
|
||||
}
|
||||
got := fmt.Sprintf("%d:%d", newToken.AccountID, newToken.ProjectID)
|
||||
if got != want {
|
||||
t.Errorf("NewToken() got = %v, want %v", newToken, want)
|
||||
}
|
||||
})
|
||||
|
||||
newToken, err := NewToken(token)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %s", err)
|
||||
}
|
||||
got := fmt.Sprintf("%d:%d", newToken.AccountID, newToken.ProjectID)
|
||||
if got != want {
|
||||
t.Fatalf("unexpected NewToken() result;got\n%s\nwant\n%s", got, want)
|
||||
}
|
||||
}
|
||||
f("token with accountID and projectID", "1:2", "1:2")
|
||||
f("max uint32 accountID", "4294967295:1", "4294967295:1")
|
||||
f("max uint32 projectID", "1:4294967295", "1:4294967295")
|
||||
f("max uint32 accountID and projectID", "4294967295:4294967295", "4294967295:4294967295")
|
||||
// token with accountID only
|
||||
f("1", "1:0")
|
||||
// token with accountID and projecTID
|
||||
f("1:2", "1:2")
|
||||
// max uint32 accountID
|
||||
f("4294967295:1", "4294967295:1")
|
||||
// max uint32 projectID
|
||||
f("1:4294967295", "1:4294967295")
|
||||
// max uint32 accountID and projectID
|
||||
f("4294967295:4294967295", "4294967295:4294967295")
|
||||
}
|
||||
|
||||
func TestNewTokenFailure(t *testing.T) {
|
||||
f := func(name string, token string) {
|
||||
f := func(token string) {
|
||||
t.Helper()
|
||||
t.Run(name, func(t *testing.T) {
|
||||
newToken, err := NewToken(token)
|
||||
if err == nil {
|
||||
t.Fatalf("expecting non-nil error")
|
||||
}
|
||||
if newToken != nil {
|
||||
t.Fatalf("expecting nil token")
|
||||
}
|
||||
})
|
||||
newToken, err := NewToken(token)
|
||||
if err == nil {
|
||||
t.Fatalf("expecting non-nil error")
|
||||
}
|
||||
if newToken != nil {
|
||||
t.Fatalf("expecting nil token; got\n%#v", newToken)
|
||||
}
|
||||
}
|
||||
f("empty token", "")
|
||||
f("empty accountID and projectID", ":")
|
||||
f("accountID and projectID not int values", "a:b")
|
||||
f("missed projectID", "1:")
|
||||
f("missed accountID", ":2")
|
||||
f("large int value for accountID", "9223372036854775808:1")
|
||||
f("large int value for projectID", "2:9223372036854775808")
|
||||
f("both large int values incorrect", "9223372036854775809:9223372036854775808")
|
||||
f("large uint32 values incorrect", "4294967297:4294967295")
|
||||
f("negative accountID", "-100:100")
|
||||
f("negative projectID", "100:-100")
|
||||
f("negative accountID and projectID", "-100:-100")
|
||||
f("accountID is string", "abcd:2")
|
||||
f("projectID is string", "2:abcd")
|
||||
f("empty many parts in the token", "::")
|
||||
f("many string parts in the token", "a:b:c")
|
||||
f("many int parts in the token", "1:2:3")
|
||||
// empty token
|
||||
f("")
|
||||
// empty accountID and projectID"
|
||||
f(":")
|
||||
// accountID and projectID not int values
|
||||
f("a:b")
|
||||
// missed projectID
|
||||
f("1:")
|
||||
// missed accountID
|
||||
f(":2")
|
||||
// large int value for accountID
|
||||
f("9223372036854775808:1")
|
||||
// large value for projectID
|
||||
f("2:9223372036854775808")
|
||||
// both large values incorrect
|
||||
f("9223372036854775809:9223372036854775808")
|
||||
// large uint32 values incorrect
|
||||
f("4294967297:4294967295")
|
||||
//negative accountID
|
||||
f("-100:100")
|
||||
// negative projectID
|
||||
f("100:-100")
|
||||
// negative accountID and projectID
|
||||
f("-100:-100")
|
||||
// accountID is string
|
||||
f("abcd:2")
|
||||
// projectID is string
|
||||
f("2:abcd")
|
||||
// empty many parts in the token
|
||||
f("::")
|
||||
// many string parts in the token
|
||||
f("a:b:c")
|
||||
// many int parts in the token"
|
||||
f("1:2:3")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue