resource_test.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package service
  2. import (
  3. "context"
  4. "go-template/business/dto"
  5. "go-template/business/util"
  6. "testing"
  7. "time"
  8. "gitea.ckfah.com/cjjy/gocommon/pkg/cache/redis"
  9. "gitea.ckfah.com/cjjy/gocommon/pkg/conf"
  10. "gitea.ckfah.com/cjjy/gocommon/pkg/mq/rocketmq"
  11. "gitea.ckfah.com/cjjy/gocommon/pkg/net/nacos"
  12. "github.com/apache/rocketmq-client-go/v2/primitive"
  13. )
  14. // make test test_func=Test_Redis_Resource test_pkg=./business/service
  15. func Test_Redis_Resource(t *testing.T) {
  16. t.Run("测试redis-set", func(t *testing.T) {
  17. key := "key-demo"
  18. value := "value"
  19. setResult, err := redis.Instance().SetString(redis.PrefixKey(key), value)
  20. if err != nil {
  21. t.Fatal(err)
  22. }
  23. t.Logf("redis 插入成功: %v", setResult)
  24. t.Run("测试redis-get", func(t *testing.T) {
  25. resultStr, err := redis.Instance().GetString(redis.PrefixKey(key))
  26. if err != nil {
  27. t.Fatal(err)
  28. }
  29. if resultStr == value {
  30. t.Logf("redis 查询成功: %v", resultStr)
  31. }
  32. })
  33. })
  34. t.Run("测试redis-get-nil", func(t *testing.T) {
  35. _, err := redis.Instance().GetString(redis.PrefixKey("null"))
  36. if redis.CheckIsNilErr(err) {
  37. t.Logf("测试redis查询为空成功")
  38. } else {
  39. t.Fatal("redis查询失败")
  40. }
  41. })
  42. t.Run("测试redis-set ex", func(t *testing.T) {
  43. _, err := redis.Instance().SetExString(redis.PrefixKey("ex"), "demo", 1)
  44. if err != nil {
  45. t.Fatal(err)
  46. }
  47. t.Run("测试redis未过期", func(t *testing.T) {
  48. result, err := redis.Instance().GetString(redis.PrefixKey("ex"))
  49. if err != nil {
  50. t.Fatal(err)
  51. }
  52. t.Logf("获取成功: %s", result)
  53. })
  54. t.Run("测试redis已过期", func(t *testing.T) {
  55. time.Sleep(time.Second)
  56. _, err := redis.Instance().GetString(redis.PrefixKey("ex"))
  57. if redis.CheckIsNilErr(err) {
  58. t.Logf("测试过期成功")
  59. } else {
  60. t.Fatal("测试过期失败")
  61. }
  62. })
  63. })
  64. }
  65. // make test test_func=Test_MQ_Resource test_pkg=./business/service
  66. func Test_MQ_Resource(t *testing.T) {
  67. t.Run("生产和消费消息", func(t *testing.T) {
  68. topic := "test_topic"
  69. t.Run("普通发送", func(t *testing.T) {
  70. result, err := NewReportService().SendMQ(util.MockContext(), &dto.SendMQParams{
  71. Topic: topic,
  72. Message: `{"data":"yyyy","code":0,"message":"success"}`,
  73. })
  74. if err != nil {
  75. t.Fatal(err)
  76. }
  77. t.Logf("发送成功: %v", result)
  78. })
  79. t.Run("获取消息ID", func(t *testing.T) {
  80. result, err := rocketmq.GetProducer().SendV2(util.MockContext(), topic, []byte(`{"data":"yyyy","code":0,"message":"success"}`))
  81. if err != nil {
  82. t.Fatal(err)
  83. }
  84. t.Logf("发送成功 msg_id: %v", result.MsgID)
  85. })
  86. t.Run("消费消息", func(t *testing.T) {
  87. err := rocketmq.GetConsumer().Subscribe(topic, func(ctx context.Context, message *primitive.MessageExt) {
  88. t.Logf("收到消息: %v", message)
  89. })
  90. if err != nil {
  91. t.Fatal(err)
  92. }
  93. if err := rocketmq.GetConsumer().GetRocketMqConsumer().Start(); err != nil {
  94. t.Fatal(err)
  95. }
  96. time.Sleep(time.Millisecond * 10)
  97. })
  98. })
  99. t.Run("发送MQ消息模拟失败", func(t *testing.T) {
  100. _, err := rocketmq.GetProducer().SendV2(util.MockContext(), "test_topic_1", []byte(`{"data":"yyyy","code":0,"message":"success"}`))
  101. if err != nil {
  102. t.Logf("失败信息: %v", err)
  103. } else {
  104. t.Fatal("未获取到失败信息")
  105. }
  106. })
  107. }
  108. // make test test_func=Test_Nacos_Config_Discover_Register test_pkg=./business/service
  109. func Test_Nacos_Config_Discover_Register(t *testing.T) {
  110. t.Run("测试注册服务", func(t *testing.T) {
  111. err := nacos.InitNacosRegisterClient()
  112. if err != nil {
  113. t.Fatal(err)
  114. }
  115. t.Logf("注册成功")
  116. })
  117. t.Run("获取服务", func(t *testing.T) {
  118. time.Sleep(time.Second)
  119. host, err := nacos.GetHost("ebike-factory-api")
  120. if err != nil {
  121. t.Logf("获取服务异常: %s", err)
  122. } else {
  123. t.Logf("获取服务成功: %s", host)
  124. }
  125. })
  126. t.Run("测试config", func(t *testing.T) {
  127. t.Logf("获取配置:%v", conf.GetStringV2("application.project_name"))
  128. })
  129. }