diff --git a/gateway/service_test.go b/gateway/service_test.go index c092782..b40102d 100644 --- a/gateway/service_test.go +++ b/gateway/service_test.go @@ -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) { @@ -123,4 +124,99 @@ func TestConvertParamModel(t *testing.T) { convertParam(mem, m) fmt.Println(mem.Email) -} \ No newline at end of file +} + +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 + +} +