package gateway import ( "testing" "reflect" "github.com/stretchr/testify/assert" "encoding/json" "github.com/golang/glog" "fmt" "git.loafle.net/overflow/overflow_proxy_service/proxy/member" ) func TestServices(t *testing.T) { InitServices() meb, _ := g_services["Member"] m := make(map[string]string) m["email"] = "geek@loafle.com" m["pw"] = "qwer5795" convertParam(meb, m) //val := []reflect.Value{reflect.ValueOf(meb.(*proxy.MemberService))} va := reflect.ValueOf(meb).MethodByName("Regist").Call([]reflect.Value{}) //reflect.ValueOf(meb).MethodByName("Read").Call(reflect.ValueOf(meb)) assert.Equal(t, 0, len(va)) } func TestServiceParam(t *testing.T) { InitServices() meb, _ := g_services["Member"] m := make(map[string]string) m["email"] = "geek@loafle.com" m["pw"] = "qwer5795" paramStr, err := json.Marshal(m) if err != nil { glog.Fatal("Json Marshal Failed : ", err.Error()) } err = json.Unmarshal(paramStr, meb) if err != nil { glog.Fatal("Json Unmarshal Failed : ", err.Error()) } //assert.ObjectsAreEqual(proxy.MemberService{}, meb) } // //type Member struct { // Email string `json:"email"` // Password string `json:"password"` //} // //type MemberService struct { // ServiceName string `json:"serviceName"` // MethodName string `json:"methodName"` // Param *Member `json:"param"` //} func TestComvertJson(t *testing.T) { //res := `{"serviceName":"Member","methodName":"Regist","param":{"email":"geek@loafle.com","password":"qwer5795"}}` InitServices() meb, _ := g_services["Member"] mem := meb.GetModel() m := make(map[string]string) m["email"] = "geek@loafle.com" m["password"] = "qwer5795" //ss := member.NewMemberService() convertParam(mem, m) methodName := reflect.ValueOf(meb).MethodByName("Regist") in := make([]reflect.Value, methodName.Type().NumIn()) for i := 0; i < methodName.Type().NumIn(); i++{ temp := methodName.Type().In(i) in[i] = reflect.ValueOf(mem) fmt.Println(temp) } va := methodName.Call(in)[0].String() fmt.Println(va) } //func TestReflectType(t *testing.T) { //ss := &MemberService{} ////t1 := reflect.ValueOf(ss.Param).Elem() // //ms1 := reflect.New(reflect.TypeOf(ss.Param)).Elem().Type() // //fmt.Println(ms1) ////ss.Param = ms1 ////ss.Param.Email = "ddd" ////fmt.Println(ss.Param.Email) //ms := reflect.New(reflect.ValueOf(ss.Param).Type()).Elem() //fmt.Printf("created a [%T]\n", reflect.ValueOf(ms).Type()) //} func TestConvertParamModel(t *testing.T) { res := `{"email":"geek@loafle.com","pwSalt":"dssdft","company":"loafle"}` m := make(map[string]string) m["model"] = res mem := &member.Member{} convertParam(mem, m) fmt.Println(mem.Email) }