github.com/lino-network/lino@v0.6.11/types/common_test.go (about) 1 package types 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/tendermint/tendermint/crypto/secp256k1" 8 ) 9 10 func TestIsUsername(t *testing.T) { 11 testCases := map[string]struct { 12 accountKeys []AccountKey 13 expectRes bool 14 }{ 15 "username is too short": { 16 accountKeys: []AccountKey{"us"}, 17 expectRes: false, 18 }, 19 "username is too long": { 20 accountKeys: []AccountKey{"useruseruseruseruseru"}, 21 expectRes: false, 22 }, 23 "invalid characters": { 24 accountKeys: []AccountKey{"register#", "_register", "-register", "reg@ister", "re--gister", 25 "reg*ister", "register!", "register()", "reg$ister", "reg ister", " register", "re_-gister", 26 "reg=ister", "register^", "register.", "reg$ister,", "Register", "r__egister", "reGister", 27 "r_--gister", "re.-gister", ".re-gister", "re-gister.", "register_", "register-", "a.2.2.-.-..2", 28 ".register", "register..", "_.register", "123123", "reg--ster", "reg$ster", "re%gister", "regist\"er", 29 "reg?ster", "reg:ster", "regi<ster", "regi>ster", "reg{ster", "regi}ster", "reg'ster", "reg`ster"}, 30 expectRes: false, 31 }, 32 "address": { 33 accountKeys: []AccountKey{AccountKey(secp256k1.GenPrivKey().PubKey().Address())}, 34 expectRes: false, 35 }, 36 "valid username": { 37 accountKeys: []AccountKey{"register", "re.gister", "re-gister", "reg", "registerregisterregi"}, 38 expectRes: true, 39 }, 40 } 41 42 for testName, tc := range testCases { 43 for _, accKey := range tc.accountKeys { 44 res := accKey.IsValid() 45 assert.Equal(t, tc.expectRes, res, "%s", testName) 46 } 47 } 48 }