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  }