go_dreamfactory/cmd/v2/ui/protocol.go
2022-08-09 18:03:02 +08:00

162 lines
4.3 KiB
Go

package ui
import (
"fmt"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/ui/formview"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules/hero"
"go_dreamfactory/modules/task"
"go_dreamfactory/modules/user"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"google.golang.org/protobuf/proto"
)
type MyCaseView interface {
Init()
CreateForm(t *model.TestCase) fyne.CanvasObject
}
// 1 注册接口测试的表单试图
var (
viewRegister = map[string]MyCaseView{
// gm
ff(comm.ModuleGM, "cmd"): &formview.BingoView{},
//user
ff(comm.ModuleUser, user.UserSubTypeModifyName): &formview.UserModifynameView{},
//task
ff(comm.ModuleTask, task.TaskSubTypeList): &formview.TaskListView{},
ff(comm.ModuleTask, task.TaskSubTypeReceive): &formview.TaskReceiveView{},
ff(comm.ModuleTask, task.TaskSubTypeActiveList): &formview.TaskActiveListView{},
ff(comm.ModuleTask, task.TaskSubTypeActiveReceive): &formview.TaskActiveReceiveView{},
// hero
ff(comm.ModuleHero, hero.HeroSubTypeList): &formview.HeroListView{},
ff(comm.ModuleHero, hero.StrengthenUplv): &formview.HeroStrengthenUplvView{},
ff(comm.ModuleHero, hero.StrengthenUpStar): &formview.HeroStrengthenUpStarView{},
}
)
// 2 添加导航菜单
var (
CaseIndex = map[string][]string{
"": {"gm", "user", "hero", "task"},
"gm": {"gm.cmd"},
"user": {"user.modifyname"},
"hero": {"hero.list", "hero.strengthenuplv", "hero.strengthenupstar"},
"task": {"task.list", "task.receive", "task.activelist", "task.activereceive"},
}
)
// 3 注册测试用例
var (
CaseNav = map[string]*model.TestCase{
// gm
"gm": {
MainType: string(comm.ModuleGM),
Enabled: true,
},
ff(comm.ModuleGM, "cmd"): {
Desc: "eg. bingo:item,10001,1 bingo:attr,gold,1000000",
MainType: string(comm.ModuleGM),
SubType: "cmd",
Req: &pb.GMCmdReq{},
Rsp: &pb.GMCmdResp{},
Enabled: true,
},
// user
"user": {
MainType: "user",
Enabled: true,
},
"user.modifyname": {
Desc: "用户昵称修改",
MainType: "user",
SubType: "modifyname",
Req: &pb.UserModifynameReq{},
Rsp: &pb.UserModifynameResp{},
Print: func(rsp proto.Message) string {
r := rsp.(*pb.UserModifynameResp)
return fmt.Sprintf("Uid:%s count:%d", r.Uid, r.Count)
},
Enabled: true,
},
// task
"task": {
MainType: "task",
Enabled: true,
},
"task.list": {
Desc: "用户任务列表",
MainType: "task",
SubType: "list",
Req: &pb.TaskListReq{},
Rsp: &pb.TaskListResp{},
Enabled: true,
},
"task.receive": {
Desc: "用户任务领取",
MainType: "task",
SubType: "receive",
Enabled: true,
},
ff(comm.ModuleTask, task.TaskSubTypeActiveList): {
Desc: "用户活跃度列表",
MainType: string(comm.ModuleTask),
SubType: task.TaskSubTypeActiveList,
Req: &pb.TaskActiveListReq{},
Rsp: &pb.TaskActiveListResp{},
Enabled: true,
},
ff(comm.ModuleTask, task.TaskSubTypeActiveReceive): {
Desc: "用户活跃度领取",
MainType: string(comm.ModuleTask),
SubType: task.TaskSubTypeActiveReceive,
Req: &pb.TaskActiveReceiveReq{},
Rsp: &pb.TaskActiveReceiveResp{},
Enabled: true,
},
// hero
string(comm.ModuleHero): {
MainType: string(comm.ModuleHero),
Enabled: true,
},
ff(comm.ModuleHero, hero.HeroSubTypeList): {
Desc: "英雄列表",
MainType: string(comm.ModuleHero),
SubType: hero.HeroSubTypeList,
Req: &pb.HeroListReq{},
Rsp: &pb.HeroListResp{},
// Print: func(rsp proto.Message) string{
// out := rsp.(*pb.HeroListResp)
// for i, v := range out.List {
// fmt.Printf("%d- %v\n", (i + 1), v)
// }
// },
Enabled: true,
},
ff(comm.ModuleHero, hero.StrengthenUplv): {
Desc: "英雄等级升级",
MainType: string(comm.ModuleHero),
SubType: hero.StrengthenUplv,
Req: &pb.HeroStrengthenUplvReq{},
Rsp: &pb.HeroStrengthenUplvResp{},
Enabled: true,
},
ff(comm.ModuleHero, hero.StrengthenUpStar): {
Desc: "英雄星级升级",
MainType: string(comm.ModuleHero),
SubType: hero.StrengthenUpStar,
Req: &pb.HeroStrengthenUpStarReq{},
Rsp: &pb.HeroStrengthenUpStarResp{},
Enabled: true,
},
}
)
func ff(s1 core.M_Modules, s2 string) string {
return fmt.Sprintf("%s.%s", s1, s2)
}