package redis import ( "encoding/json" "fmt" "github.com/stretchr/testify/assert" "testing" "zhiyuan/pkg/config" "zhiyuan/pkg/logger" "zhiyuan/pkg/utils" ) func init() { config.Setup(config.WithFile("../../config/config.yml"), config.WithEnv("../../.env")) logger.Setup(logger.WithMode("go_test")) Setup() } func TestGet(t *testing.T) { // str keyStr := "test str" valStr := "test string" err := Set(keyStr, valStr, -1) str, err := Get(keyStr) ass := assert.New(t) ass.NoError(err) var retStr string utils.JsonDecode(str).To(&retStr) ass.Equal(retStr, valStr) ass.Equal(utils.JsonDecode(str).ToMapStr(), valStr) //err = Set(keyStr, "", -1) //str, err = Get("test str not found") //fmt.Println(str) //fmt.Println(err) // map keyMap := "test map" valMap := map[string]interface{}{"id": 1} err = Set(keyMap, valMap, -1) str, err = Get(keyMap) ass.NoError(err) ass.Equal(utils.JsonDecode(str).ToMap(), map[string]interface{}{"id": json.Number("1")}) retMap := make(map[string]interface{}) utils.JsonDecode(str).To(&retMap) ass.Equal(retMap, map[string]interface{}{"id": json.Number("1")}) // struct type testStruct struct { Id int `json:"id"` } keyStruct := "test struct" valStruct := testStruct{Id: 1} err = Set(keyStruct, valStruct, -1) str, err = Get(keyStruct) ass.NoError(err) var valStructDecode testStruct utils.JsonDecode(str).To(&valStructDecode) ass.Equal(valStructDecode, valStruct) // struct slice valStructSlice := make([]testStruct, 0) keyStructSlice := "test struct" valStructSlice = append(valStructSlice, testStruct{Id: 1}) err = Set(keyStructSlice, valStructSlice, -1) str, err = Get(keyStruct) ass.NoError(err) var valStructSliceDecode []testStruct utils.JsonDecode(str).To(&valStructSliceDecode) ass.Equal(valStructSliceDecode, valStructSlice) } func TestSAdd(t *testing.T) { ass := assert.New(t) key1 := "testSADD1" str, err := SMembers(key1) fmt.Println(len(str) == 0) ass.Equal(str, "123123123") key := "testSADD" val := []interface{}{"123123123"} SAdd(key, val, 600) str, err = SMembers(key) ass.NoError(err) ass.Equal(val, str) Del(key) str, err = SMembers(key) fmt.Println(len(str) == 0) ass.Equal(val, str) } func TestAdd(t *testing.T) { ass := assert.New(t) key := "testADD" val := "123123" SetBasic(key, val, 500) str1, err := Get(key) ass.NoError(err) ass.Equal(str1, val) Del(key) str1, err = Get(key) ass.EqualError(err, "redis: nil") ass.Equal(str1, "") }