github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/rpc/utils_test.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 12:09:46</date> 10 //</624342665927856128> 11 12 13 package rpc 14 15 import ( 16 "strings" 17 "testing" 18 ) 19 20 func TestNewID(t *testing.T) { 21 hexchars := "0123456789ABCDEFabcdef" 22 for i := 0; i < 100; i++ { 23 id := string(NewID()) 24 if !strings.HasPrefix(id, "0x") { 25 t.Fatalf("invalid ID prefix, want '0x...', got %s", id) 26 } 27 28 id = id[2:] 29 if len(id) == 0 || len(id) > 32 { 30 t.Fatalf("invalid ID length, want len(id) > 0 && len(id) <= 32), got %d", len(id)) 31 } 32 33 for i := 0; i < len(id); i++ { 34 if strings.IndexByte(hexchars, id[i]) == -1 { 35 t.Fatalf("unexpected byte, want any valid hex char, got %c", id[i]) 36 } 37 } 38 } 39 } 40