This is an automated email from the ASF dual-hosted git repository. zhaoyunxing pushed a commit to branch 3.0 in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git
commit b6b7f39d9468885bcc7690ed27f8df385b38ef4c Author: XavierNiu <[email protected]> AuthorDate: Wed Aug 18 21:31:24 2021 +0800 Tst: Add parameterless call test for generic invocation (#197) * add new test for generic invocation * update dubbo-go version * update go.mod * update go.mod * fix conversion bug * fix typo * fix conversion bugs * generic invocation sample for call without params * go fmt * remove useless type * use hessian.Object --- generic/default/go-client/cmd/client.go | 20 ++++++++++++++++++++ generic/default/go-server/pkg/user.go | 9 +++++++++ .../go-server/tests/integration/userprovider_test.go | 18 ++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/generic/default/go-client/cmd/client.go b/generic/default/go-client/cmd/client.go index 7af8c21..8cbf7b4 100644 --- a/generic/default/go-client/cmd/client.go +++ b/generic/default/go-client/cmd/client.go @@ -67,6 +67,9 @@ func main() { callQueryUser() gxlog.CInfo("\n\ncall queryUsers") callQueryUsers() + gxlog.CInfo("\n\ncall callGetOneUser") + callGetOneUser() + initSignal() } @@ -170,3 +173,20 @@ func callQueryUsers() { gxlog.CInfo("res: %+v\n", resp) gxlog.CInfo("success!") } + +func callGetOneUser() { + gxlog.CInfo("\n\n\nstart to generic invoke") + resp, err := referenceConfig.GetRPCService().(*config.GenericService).Invoke( + context.TODO(), + []interface{}{ + "GetOneUser", + []hessian.Object{}, + []hessian.Object{}, + }, + ) + if err != nil { + panic(err) + } + gxlog.CInfo("res: %+v\n", resp) + gxlog.CInfo("success!") +} diff --git a/generic/default/go-server/pkg/user.go b/generic/default/go-server/pkg/user.go index 26e3c5c..88cdc43 100644 --- a/generic/default/go-server/pkg/user.go +++ b/generic/default/go-server/pkg/user.go @@ -71,6 +71,15 @@ func (u *UserProvider) QueryUsers(_ context.Context, users []*User) (*UserRespon }, nil } +func (u *UserProvider) GetOneUser(_ context.Context) (*User, error) { + return &User{ + ID: "1000", + Name: "xavierniu", + Age: 24, + Time: time.Now(), + }, nil +} + func (u *UserProvider) MethodMapper() map[string]string { return map[string]string{ "QueryUser": "queryUser", diff --git a/generic/default/go-server/tests/integration/userprovider_test.go b/generic/default/go-server/tests/integration/userprovider_test.go index 58c8a29..0a67352 100644 --- a/generic/default/go-server/tests/integration/userprovider_test.go +++ b/generic/default/go-server/tests/integration/userprovider_test.go @@ -110,3 +110,21 @@ func TestQueryUsers(t *testing.T) { assert.Equal(t, int32(24), users[1].(map[interface{}]interface{})["age"]) assert.Equal(t, "3212", users[1].(map[interface{}]interface{})["iD"]) } + +func TestGetOneUser(t *testing.T) { + o, err := referenceConfig.GetRPCService().(*config.GenericService).Invoke( + context.TODO(), + []interface{}{ + "GetOneUser", + []hessian.Object{}, + []hessian.Object{}, + }, + ) + + assert.Nil(t, err) + resp, ok := o.(map[interface{}]interface{}) + assert.True(t, ok) + assert.Equal(t, "xavierniu", resp["name"]) + assert.Equal(t, int32(24), resp["age"]) + assert.Equal(t, "1000", resp["iD"]) +}
