redis_test.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package redis
  2. import (
  3. "fmt"
  4. "git.shuncheng.lu/bigthing/gocommon/pkg/conf"
  5. "git.shuncheng.lu/bigthing/gocommon/pkg/internal/properties"
  6. "testing"
  7. "time"
  8. )
  9. var (
  10. pro properties.Properties
  11. )
  12. func mockRedisConfig(t *testing.T) {
  13. config := `
  14. redis.host = 127.0.0.1:6379
  15. redis.password =
  16. redis.database = 1
  17. application.env = debug
  18. `
  19. var err error
  20. pro, err = properties.ReadFromString(config)
  21. if err != nil {
  22. t.Fatal(err)
  23. }
  24. conf.MustValue = func(section, key string, defaultVal ...string) string {
  25. return pro.GetString(section+"."+key, defaultVal...)
  26. }
  27. }
  28. func TestInstancePool(t *testing.T) {
  29. mockRedisConfig(t)
  30. if err := Init(); err != nil {
  31. t.Fatal(err)
  32. }
  33. fmt.Println(Instance().SetString("k11111", "v1"))
  34. cnn := InstancePool().Get()
  35. defer cnn.Close()
  36. fmt.Println(cnn.Do("get", "k11111"))
  37. }
  38. func TestPUSH(t *testing.T) {
  39. mockRedisConfig(t)
  40. if err := Init(); err != nil {
  41. t.Fatal(err)
  42. }
  43. Instance().LPUSH("mylist1", []interface{}{1, 2, 3, 4})
  44. //cnn := InstancePool().Get()
  45. //defer cnn.Close()
  46. //fmt.Println(cnn.Do("BLPOP", "mylist1", 0))
  47. }
  48. func TestIsDirectInstancePoolFalse(t *testing.T) {
  49. mockRedisConfig(t)
  50. pro.SetString("application.env", "release")
  51. if err := Init(); err != nil {
  52. t.Fatal(err)
  53. }
  54. t.Log("success")
  55. }
  56. func TestIsDirectInstancePool(t *testing.T) {
  57. mockRedisConfig(t)
  58. pro.SetString("application.env", "release")
  59. pro.SetString("redis.is_direct", "true")
  60. if err := Init(); err != nil {
  61. t.Fatal(err)
  62. }
  63. fmt.Println(Instance().SetString("k11111", "v1"))
  64. cnn := InstancePool().Get()
  65. defer cnn.Close()
  66. fmt.Println(cnn.Do("get", "k11111"))
  67. }
  68. func TestInit(t *testing.T) {
  69. mockRedisConfig(t)
  70. pro.SetString("redis.password", "")
  71. if err := Init(); err != nil {
  72. t.Fatal(err)
  73. }
  74. t.Log("success")
  75. }
  76. func TestPing(t *testing.T) {
  77. mockRedisConfig(t)
  78. if err := Init(); err != nil {
  79. t.Fatal(err)
  80. }
  81. for x := 0; x < 5; x++ {
  82. <-time.After(time.Second * 2)
  83. fmt.Println(Instance().GetString("k1"))
  84. }
  85. }