redis_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package redis
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/stretchr/testify/assert"
  6. "testing"
  7. "zhiyuan/pkg/config"
  8. "zhiyuan/pkg/logger"
  9. "zhiyuan/pkg/utils"
  10. )
  11. func init() {
  12. config.Setup(config.WithFile("../../config/config.yml"), config.WithEnv("../../.env"))
  13. logger.Setup(logger.WithMode("go_test"))
  14. Setup()
  15. }
  16. func TestGet(t *testing.T) {
  17. // str
  18. keyStr := "test str"
  19. valStr := "test string"
  20. err := Set(keyStr, valStr, -1)
  21. str, err := Get(keyStr)
  22. ass := assert.New(t)
  23. ass.NoError(err)
  24. var retStr string
  25. utils.JsonDecode(str).To(&retStr)
  26. ass.Equal(retStr, valStr)
  27. ass.Equal(utils.JsonDecode(str).ToMapStr(), valStr)
  28. //err = Set(keyStr, "", -1)
  29. //str, err = Get("test str not found")
  30. //fmt.Println(str)
  31. //fmt.Println(err)
  32. // map
  33. keyMap := "test map"
  34. valMap := map[string]interface{}{"id": 1}
  35. err = Set(keyMap, valMap, -1)
  36. str, err = Get(keyMap)
  37. ass.NoError(err)
  38. ass.Equal(utils.JsonDecode(str).ToMap(), map[string]interface{}{"id": json.Number("1")})
  39. retMap := make(map[string]interface{})
  40. utils.JsonDecode(str).To(&retMap)
  41. ass.Equal(retMap, map[string]interface{}{"id": json.Number("1")})
  42. // struct
  43. type testStruct struct {
  44. Id int `json:"id"`
  45. }
  46. keyStruct := "test struct"
  47. valStruct := testStruct{Id: 1}
  48. err = Set(keyStruct, valStruct, -1)
  49. str, err = Get(keyStruct)
  50. ass.NoError(err)
  51. var valStructDecode testStruct
  52. utils.JsonDecode(str).To(&valStructDecode)
  53. ass.Equal(valStructDecode, valStruct)
  54. // struct slice
  55. valStructSlice := make([]testStruct, 0)
  56. keyStructSlice := "test struct"
  57. valStructSlice = append(valStructSlice, testStruct{Id: 1})
  58. err = Set(keyStructSlice, valStructSlice, -1)
  59. str, err = Get(keyStruct)
  60. ass.NoError(err)
  61. var valStructSliceDecode []testStruct
  62. utils.JsonDecode(str).To(&valStructSliceDecode)
  63. ass.Equal(valStructSliceDecode, valStructSlice)
  64. }
  65. func TestSAdd(t *testing.T) {
  66. ass := assert.New(t)
  67. key1 := "testSADD1"
  68. str, err := SMembers(key1)
  69. fmt.Println(len(str) == 0)
  70. ass.Equal(str, "123123123")
  71. key := "testSADD"
  72. val := []interface{}{"123123123"}
  73. SAdd(key, val, 600)
  74. str, err = SMembers(key)
  75. ass.NoError(err)
  76. ass.Equal(val, str)
  77. Del(key)
  78. str, err = SMembers(key)
  79. fmt.Println(len(str) == 0)
  80. ass.Equal(val, str)
  81. }
  82. func TestAdd(t *testing.T) {
  83. ass := assert.New(t)
  84. key := "testADD"
  85. val := "123123"
  86. SetBasic(key, val, 500)
  87. str1, err := Get(key)
  88. ass.NoError(err)
  89. ass.Equal(str1, val)
  90. Del(key)
  91. str1, err = Get(key)
  92. ass.EqualError(err, "redis: nil")
  93. ass.Equal(str1, "")
  94. }