79 lines
1.5 KiB
Go
79 lines
1.5 KiB
Go
package cf
|
|
|
|
import (
|
|
"regexp"
|
|
"testing"
|
|
)
|
|
|
|
// Test IsMobile
|
|
func TestIsMobile(t *testing.T) {
|
|
valid := []string{
|
|
"13800138000",
|
|
"19999999999",
|
|
"18888888888",
|
|
}
|
|
invalid := []string{
|
|
"23800138000",
|
|
"10000000000",
|
|
"12345",
|
|
"abc13800138000",
|
|
"",
|
|
}
|
|
|
|
for _, v := range valid {
|
|
if !IsMobile(v) {
|
|
t.Errorf("IsMobile(%q) = false, want true", v)
|
|
}
|
|
}
|
|
|
|
for _, v := range invalid {
|
|
if IsMobile(v) {
|
|
t.Errorf("IsMobile(%q) = true, want false", v)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Test StrRand
|
|
func TestStrRand(t *testing.T) {
|
|
length := 16
|
|
s := StrRand(length)
|
|
if len(s) != length {
|
|
t.Errorf("StrRand length = %d, want %d", len(s), length)
|
|
}
|
|
|
|
// check character set
|
|
matched, _ := regexp.MatchString(`^[0-9a-zA-Z]+$`, s)
|
|
if !matched {
|
|
t.Errorf("StrRand returned invalid characters: %s", s)
|
|
}
|
|
}
|
|
|
|
// Test StrCharRand
|
|
func TestStrCharRand(t *testing.T) {
|
|
length := 10
|
|
s := StrCharRand(length)
|
|
if len(s) != length {
|
|
t.Errorf("StrCharRand length = %d, want %d", len(s), length)
|
|
}
|
|
matched, _ := regexp.MatchString(`^[a-zA-Z]+$`, s)
|
|
if !matched {
|
|
t.Errorf("StrCharRand returned invalid characters: %s", s)
|
|
}
|
|
}
|
|
|
|
// Test StrNumberRand
|
|
func TestStrNumberRand(t *testing.T) {
|
|
length := 8
|
|
s := StrNumberRand(length)
|
|
if len(s) != length {
|
|
t.Errorf("StrNumberRand length = %d, want %d", len(s), length)
|
|
}
|
|
matched, _ := regexp.MatchString(`^[0-9]+$`, s)
|
|
if !matched {
|
|
t.Errorf("StrNumberRand returned invalid characters: %s", s)
|
|
}
|
|
if s[0] == '0' {
|
|
t.Errorf("StrNumberRand starts with 0, which is not allowed: %s", s)
|
|
}
|
|
}
|