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"])
+}

Reply via email to