package game import ( "fmt" "strings" "testing" "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" ) func TestGetKfUrl(t *testing.T) { client, err := NewClient() if err != nil { t.Fatalf("NewClient err: %v", err) } req := CreateGetKfUrlReq() req.GameId = 10001 req.Uid = "166146" resp, err := client.GetKfUrl(req) if err != nil { t.Fatalf("GetKfUrl err: %v", err) } if resp.Code != 1 { t.Fatalf("expect code 1, got %d, msg: %s", resp.Code, resp.Msg) } if !strings.Contains(resp.Data.KfUrl, "game_id=10001") { t.Fatalf("kf_url 缺少 game_id: %s", resp.Data.KfUrl) } if !strings.Contains(resp.Data.KfUrl, "uid=166146") { t.Fatalf("kf_url 缺少 uid: %s", resp.Data.KfUrl) } if !strings.Contains(resp.Data.KfUrl, "sign=") { t.Fatalf("kf_url 缺少 sign: %s", resp.Data.KfUrl) } fmt.Println(resp.Code, resp.Msg, resp.Data.KfUrl) } // TestGetKfUrlGuest 游客场景:不设 Uid,链接中不应出现 uid func TestGetKfUrlGuest(t *testing.T) { client, err := NewClient() if err != nil { t.Fatalf("NewClient err: %v", err) } req := CreateGetKfUrlReq() req.GameId = 10003 resp, err := client.GetKfUrl(req) if err != nil { t.Fatalf("GetKfUrl err: %v", err) } if resp.Code != 1 { t.Fatalf("expect code 1, got %d, msg: %s", resp.Code, resp.Msg) } if strings.Contains(resp.Data.KfUrl, "uid=") { t.Fatalf("游客链接不应带 uid: %s", resp.Data.KfUrl) } fmt.Println(resp.Code, resp.Msg, resp.Data.KfUrl) } // TestGetKfUrlReqParams 直接断言请求参数:不设 Uid 时 JsonParams 里不应出现 "uid" key, // 设了 Uid 时应正确出现,避免只靠服务端返回的 kf_url 做间接验证。 func TestGetKfUrlReqParams(t *testing.T) { guestReq := CreateGetKfUrlReq() guestReq.GameId = 10003 if err := requests.InitParam(guestReq); err != nil { t.Fatalf("InitParam err: %v", err) } if _, ok := guestReq.JsonParams["uid"]; ok { t.Fatalf("游客请求不应包含 uid 参数: %v", guestReq.JsonParams["uid"]) } userReq := CreateGetKfUrlReq() userReq.GameId = 10001 userReq.Uid = "166146" if err := requests.InitParam(userReq); err != nil { t.Fatalf("InitParam err: %v", err) } if userReq.JsonParams["uid"] != "166146" { t.Fatalf("expect uid=166146, got %v", userReq.JsonParams["uid"]) } }