package service import ( "context" "go-template/business/dto" "go-template/business/util" "testing" "time" "gitea.ckfah.com/cjjy/gocommon/pkg/cache/redis" "gitea.ckfah.com/cjjy/gocommon/pkg/conf" "gitea.ckfah.com/cjjy/gocommon/pkg/mq/rocketmq" "gitea.ckfah.com/cjjy/gocommon/pkg/net/nacos" "github.com/apache/rocketmq-client-go/v2/primitive" ) // make test test_func=Test_Redis_Resource test_pkg=./business/service func Test_Redis_Resource(t *testing.T) { t.Run("测试redis-set", func(t *testing.T) { key := "key-demo" value := "value" setResult, err := redis.Instance().SetString(redis.PrefixKey(key), value) if err != nil { t.Fatal(err) } t.Logf("redis 插入成功: %v", setResult) t.Run("测试redis-get", func(t *testing.T) { resultStr, err := redis.Instance().GetString(redis.PrefixKey(key)) if err != nil { t.Fatal(err) } if resultStr == value { t.Logf("redis 查询成功: %v", resultStr) } }) }) t.Run("测试redis-get-nil", func(t *testing.T) { _, err := redis.Instance().GetString(redis.PrefixKey("null")) if redis.CheckIsNilErr(err) { t.Logf("测试redis查询为空成功") } else { t.Fatal("redis查询失败") } }) t.Run("测试redis-set ex", func(t *testing.T) { _, err := redis.Instance().SetExString(redis.PrefixKey("ex"), "demo", 1) if err != nil { t.Fatal(err) } t.Run("测试redis未过期", func(t *testing.T) { result, err := redis.Instance().GetString(redis.PrefixKey("ex")) if err != nil { t.Fatal(err) } t.Logf("获取成功: %s", result) }) t.Run("测试redis已过期", func(t *testing.T) { time.Sleep(time.Second) _, err := redis.Instance().GetString(redis.PrefixKey("ex")) if redis.CheckIsNilErr(err) { t.Logf("测试过期成功") } else { t.Fatal("测试过期失败") } }) }) } // make test test_func=Test_MQ_Resource test_pkg=./business/service func Test_MQ_Resource(t *testing.T) { t.Run("生产和消费消息", func(t *testing.T) { topic := "test_topic" t.Run("普通发送", func(t *testing.T) { result, err := NewReportService().SendMQ(util.MockContext(), &dto.SendMQParams{ Topic: topic, Message: `{"data":"yyyy","code":0,"message":"success"}`, }) if err != nil { t.Fatal(err) } t.Logf("发送成功: %v", result) }) t.Run("获取消息ID", func(t *testing.T) { result, err := rocketmq.GetProducer().SendV2(util.MockContext(), topic, []byte(`{"data":"yyyy","code":0,"message":"success"}`)) if err != nil { t.Fatal(err) } t.Logf("发送成功 msg_id: %v", result.MsgID) }) t.Run("消费消息", func(t *testing.T) { err := rocketmq.GetConsumer().Subscribe(topic, func(ctx context.Context, message *primitive.MessageExt) { t.Logf("收到消息: %v", message) }) if err != nil { t.Fatal(err) } if err := rocketmq.GetConsumer().GetRocketMqConsumer().Start(); err != nil { t.Fatal(err) } time.Sleep(time.Millisecond * 10) }) }) t.Run("发送MQ消息模拟失败", func(t *testing.T) { _, err := rocketmq.GetProducer().SendV2(util.MockContext(), "test_topic_1", []byte(`{"data":"yyyy","code":0,"message":"success"}`)) if err != nil { t.Logf("失败信息: %v", err) } else { t.Fatal("未获取到失败信息") } }) } // make test test_func=Test_Nacos_Config_Discover_Register test_pkg=./business/service func Test_Nacos_Config_Discover_Register(t *testing.T) { t.Run("测试注册服务", func(t *testing.T) { err := nacos.InitNacosRegisterClient() if err != nil { t.Fatal(err) } t.Logf("注册成功") }) t.Run("获取服务", func(t *testing.T) { time.Sleep(time.Second) host, err := nacos.GetHost("ebike-factory-api") if err != nil { t.Logf("获取服务异常: %s", err) } else { t.Logf("获取服务成功: %s", host) } }) t.Run("测试config", func(t *testing.T) { t.Logf("获取配置:%v", conf.GetStringV2("application.project_name")) }) }