github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/pkg/hashid/hash_test.go (about) 1 package hashid 2 3 import ( 4 "github.com/stretchr/testify/assert" 5 "testing" 6 ) 7 8 func TestHashEncode(t *testing.T) { 9 asserts := assert.New(t) 10 11 { 12 res, err := HashEncode([]int{1, 2, 3}) 13 asserts.NoError(err) 14 asserts.NotEmpty(res) 15 } 16 17 { 18 res, err := HashEncode([]int{}) 19 asserts.Error(err) 20 asserts.Empty(res) 21 } 22 23 } 24 25 func TestHashID(t *testing.T) { 26 asserts := assert.New(t) 27 28 { 29 res := HashID(1, ShareID) 30 asserts.NotEmpty(res) 31 } 32 } 33 34 func TestHashDecode(t *testing.T) { 35 asserts := assert.New(t) 36 37 // 正常 38 { 39 res, _ := HashEncode([]int{1, 2, 3}) 40 decodeRes, err := HashDecode(res) 41 asserts.NoError(err) 42 asserts.Equal([]int{1, 2, 3}, decodeRes) 43 } 44 45 // 出错 46 { 47 decodeRes, err := HashDecode("233") 48 asserts.Error(err) 49 asserts.Len(decodeRes, 0) 50 } 51 } 52 53 func TestDecodeHashID(t *testing.T) { 54 asserts := assert.New(t) 55 56 // 成功 57 { 58 uid, err := DecodeHashID(HashID(1, ShareID), ShareID) 59 asserts.NoError(err) 60 asserts.EqualValues(1, uid) 61 } 62 63 // 类型不匹配 64 { 65 uid, err := DecodeHashID(HashID(1, ShareID), UserID) 66 asserts.Error(err) 67 asserts.EqualValues(0, uid) 68 } 69 }