You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by zh...@apache.org on 2021/09/04 15:58:11 UTC
[dubbo-go-samples] 06/08: Tst: Add parameterless call test for
generic invocation (#197)
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 <a...@nxw.name>
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"])
+}