89 lines
2.3 KiB
Go
89 lines
2.3 KiB
Go
package main
|
||
|
||
import (
|
||
"context"
|
||
"fmt"
|
||
"log"
|
||
"time"
|
||
|
||
"dubbo.apache.org/dubbo-go/v3/client"
|
||
_ "dubbo.apache.org/dubbo-go/v3/imports"
|
||
|
||
pb "github.com/topfans/backend/pkg/proto/user"
|
||
)
|
||
|
||
func main() {
|
||
// 创建 Dubbo 客户端(直连模式)
|
||
// 注意:URL 格式为 tri://host:port,不需要包含接口名称
|
||
cli, err := client.NewClient(
|
||
client.WithClientURL("tri://127.0.0.1:20000"),
|
||
)
|
||
if err != nil {
|
||
log.Fatalf("Failed to create client: %v", err)
|
||
}
|
||
|
||
// 创建 UserSocialService 客户端
|
||
// NewUserSocialService 会自动处理接口名称和连接
|
||
svc, err := pb.NewUserSocialService(cli)
|
||
if err != nil {
|
||
log.Fatalf("Failed to create UserSocialService: %v", err)
|
||
}
|
||
|
||
// 等待一下,确保连接建立
|
||
time.Sleep(100 * time.Millisecond)
|
||
|
||
// 创建带超时的 context
|
||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||
defer cancel()
|
||
|
||
// 测试注册功能
|
||
fmt.Println("=== 测试用户注册 ===")
|
||
registerReq := &pb.RegisterRequest{
|
||
Mobile: "13800000001",
|
||
Password: "password123",
|
||
StarId: 1,
|
||
Nickname: "测试用户",
|
||
}
|
||
|
||
registerResp, err := svc.Register(ctx, registerReq)
|
||
if err != nil {
|
||
log.Fatalf("注册失败: %v", err)
|
||
}
|
||
|
||
if registerResp.Base.Code != 0 {
|
||
log.Fatalf("注册失败,错误码: %d, 错误信息: %s", registerResp.Base.Code, registerResp.Base.Message)
|
||
}
|
||
|
||
fmt.Printf("✅ 注册成功!\n")
|
||
fmt.Printf("Token: %s\n", registerResp.AccessToken)
|
||
fmt.Printf("用户ID: %d\n", registerResp.User.Id)
|
||
fmt.Printf("用户手机号: %s\n", registerResp.User.Mobile)
|
||
if registerResp.FanProfile != nil {
|
||
fmt.Printf("粉丝档案昵称: %s\n", registerResp.FanProfile.Nickname)
|
||
fmt.Printf("粉丝档案ID: %d\n", registerResp.FanProfile.Id)
|
||
}
|
||
|
||
// 测试登录功能
|
||
fmt.Println("\n=== 测试用户登录 ===")
|
||
loginReq := &pb.LoginRequest{
|
||
Mobile: "13800000001",
|
||
Password: "password123",
|
||
}
|
||
|
||
loginResp, err := svc.Login(ctx, loginReq)
|
||
if err != nil {
|
||
log.Fatalf("登录失败: %v", err)
|
||
}
|
||
|
||
if loginResp.Base.Code != 0 {
|
||
log.Fatalf("登录失败,错误码: %d, 错误信息: %s", loginResp.Base.Code, loginResp.Base.Message)
|
||
}
|
||
|
||
fmt.Printf("✅ 登录成功!\n")
|
||
fmt.Printf("Token: %s\n", loginResp.AccessToken)
|
||
fmt.Printf("用户ID: %d\n", loginResp.User.Id)
|
||
fmt.Printf("当前粉丝身份数: %d\n", len(loginResp.FanProfiles))
|
||
|
||
fmt.Println("\n✅ 所有测试通过!")
|
||
}
|