reflect test
This commit is contained in:
snoop 2017-06-07 19:21:17 +09:00
parent b6b4c5e02d
commit c8cfb12d17

View File

@ -9,6 +9,7 @@ import (
"fmt"
"git.loafle.net/overflow/overflow_proxy_service/proxy/member"
"git.loafle.net/overflow/overflow_proxy_service/proxy/target"
)
func TestServices(t *testing.T) {
@ -124,3 +125,98 @@ func TestConvertParamModel(t *testing.T) {
fmt.Println(mem.Email)
}
func TestParamTypeCreate(t *testing.T) {
ms := member.NewMemberService()
res := `{"email":"geek@loafle.com","pwSalt":"dssdft","company":"loafle"}`
method := reflect.ValueOf(ms).MethodByName("Regist")
var NewObj reflect.Value;
for i := 0; i < method.Type().NumIn(); i++ {
tt := method.Type().In(i)
t.Log(tt)
switch tt.Kind() {
case reflect.Ptr :
NewObj = reflect.New(tt.Elem())
}
//obj = NewObj.Elem().Interface()
//intPtr := reflect.New(tt)
//obj := intPtr.Elem().Interface()
err := json.Unmarshal([]byte(res), NewObj.Interface())
if err != nil {
t.Log(err)
}
t.Log(NewObj)
}
params := make([]reflect.Value, method.Type().NumIn())
params[0] = NewObj;
result := method.Call(params)[0].String()
t.Log(result)
}
func TestListReflect(t *testing.T) {
res := "[{\"id\":1,\"ip\":3232235882,\"port\":5432,\"targetType\":\"DATABASE\",\"vendorName\":\"PostgreSQL 9.5.0\",\"kinds\":\"PostgreSQL\",\"version\":\"9.5.0\",\"createDate\":1496631864025,\"member\":{\"id\":1,\"email\":\"ddddd@loafle.com\",\"pwSalt\":\"salktttt\",\"digest\":\"bbbbbbbbb\",\"name\":\"snnnnn\",\"company\":\"loafle\",\"phone\":\"000-000-0000\",\"authorizedDate\":null}},{\"id\":2,\"ip\":3232235882,\"port\":5432,\"targetType\":\"DATABASE\",\"vendorName\":\"PostgreSQL 9.5.0\",\"kinds\":\"PostgreSQL\",\"version\":\"9.5.0\",\"createDate\":1496635285090,\"member\":{\"id\":1,\"email\":\"ddddd@loafle.com\",\"pwSalt\":\"salktttt\",\"digest\":\"bbbbbbbbb\",\"name\":\"snnnnn\",\"company\":\"loafle\",\"phone\":\"000-000-0000\",\"authorizedDate\":null}},{\"id\":3,\"ip\":3232235882,\"port\":5432,\"targetType\":\"DATABASE\",\"vendorName\":\"PostgreSQL 9.5.0\",\"kinds\":\"PostgreSQL\",\"version\":\"9.5.0\",\"createDate\":1496642868260,\"member\":{\"id\":1,\"email\":\"ddddd@loafle.com\",\"pwSalt\":\"salktttt\",\"digest\":\"bbbbbbbbb\",\"name\":\"snnnnn\",\"company\":\"loafle\",\"phone\":\"000-000-0000\",\"authorizedDate\":null}},{\"id\":4,\"ip\":3232235882,\"port\":5432,\"targetType\":\"DATABASE\",\"vendorName\":\"PostgreSQL 9.5.0\",\"kinds\":\"PostgreSQL\",\"version\":\"9.5.0\",\"createDate\":1496814093714,\"member\":{\"id\":1,\"email\":\"ddddd@loafle.com\",\"pwSalt\":\"salktttt\",\"digest\":\"bbbbbbbbb\",\"name\":\"snnnnn\",\"company\":\"loafle\",\"phone\":\"000-000-0000\",\"authorizedDate\":null}},{\"id\":5,\"ip\":3232235882,\"port\":5432,\"targetType\":\"DATABASE\",\"vendorName\":\"PostgreSQL 9.5.0\",\"kinds\":\"PostgreSQL\",\"version\":\"9.5.0\",\"createDate\":1496814103052,\"member\":{\"id\":1,\"email\":\"ddddd@loafle.com\",\"pwSalt\":\"salktttt\",\"digest\":\"bbbbbbbbb\",\"name\":\"snnnnn\",\"company\":\"loafle\",\"phone\":\"000-000-0000\",\"authorizedDate\":null}},{\"id\":6,\"ip\":3232235882,\"port\":5432,\"targetType\":\"DATABASE\",\"vendorName\":\"PostgreSQL 9.5.0\",\"kinds\":\"PostgreSQL\",\"version\":\"9.5.0\",\"createDate\":1496814184478,\"member\":{\"id\":1,\"email\":\"ddddd@loafle.com\",\"pwSalt\":\"salktttt\",\"digest\":\"bbbbbbbbb\",\"name\":\"snnnnn\",\"company\":\"loafle\",\"phone\":\"000-000-0000\",\"authorizedDate\":null}}]";
t.Log(res)
ts := target.NewTargetService()
method := reflect.ValueOf(ts).MethodByName("CreateList")
var NewObj reflect.Value;
for i := 0; i < method.Type().NumIn(); i++ {
tt := method.Type().In(i)
t.Log(tt)
switch tt.Kind() {
case reflect.Ptr :
NewObj = reflect.New(tt.Elem())
case reflect.Slice :
NewObj = reflect.MakeSlice(tt, 0, 0)
}
err := json.Unmarshal([]byte(res), NewObj.Interface())
if err != nil {
t.Log(err)
}
t.Log(NewObj)
}
params := make([]reflect.Value, method.Type().NumIn())
params[0] = NewObj;
result := method.Call(params)[0].String()
t.Log(result)
//ts.cre
}