spark-server/internal/module/user/entity/spark_id_test.go

38 lines
908 B
Go

package entity
import (
"math"
"testing"
)
func TestDefaultSparkID(t *testing.T) {
a := DefaultSparkID(100)
b := DefaultSparkID(101)
if a == b || a[0] != 's' || !ValidSparkID(a) || !ValidSparkID(b) {
t.Fatalf("%s %s", a, b)
}
if len(a) != 1+sparkIDBodyLen || len(a) > SparkIDMax || len(a) < SparkIDMin {
t.Fatalf("len %s", a)
}
if DefaultSparkID(100) != a {
t.Fatal("not deterministic")
}
if DefaultSparkID(math.MaxInt64) == a || !ValidSparkID(DefaultSparkID(math.MaxInt64)) {
t.Fatal("max int64")
}
seen := map[string]int64{}
for id := int64(0); id < 4000; id++ {
s := DefaultSparkID(id)
if !ValidSparkID(s) {
t.Fatalf("invalid %d %s", id, s)
}
if other, ok := seen[s]; ok {
t.Fatalf("collision %d %d %s", other, id, s)
}
seen[s] = id
}
if ValidSparkID("1abcdef") || ValidSparkID("abcdefg") || ValidSparkID("abcdefghijklmnopq") {
t.Fatal("spark_id rules")
}
}