github.com/annwntech/go-micro/v2@v2.9.5/util/wrapper/wrapper_static_client_test.go (about) 1 package wrapper_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/annwntech/go-micro/v2/broker" 8 bmemory "github.com/annwntech/go-micro/v2/broker/memory" 9 "github.com/annwntech/go-micro/v2/client" 10 rmemory "github.com/annwntech/go-micro/v2/registry/memory" 11 "github.com/annwntech/go-micro/v2/server" 12 tmemory "github.com/annwntech/go-micro/v2/transport/memory" 13 wrapper "github.com/annwntech/go-micro/v2/util/wrapper" 14 ) 15 16 type TestFoo struct { 17 } 18 19 type TestReq struct{} 20 21 type TestRsp struct { 22 Data string 23 } 24 25 func (h *TestFoo) Bar(ctx context.Context, req *TestReq, rsp *TestRsp) error { 26 rsp.Data = "pass" 27 return nil 28 } 29 30 func TestStaticClientWrapper(t *testing.T) { 31 var err error 32 33 req := client.NewRequest("go.micro.service.foo", "TestFoo.Bar", &TestReq{}, client.WithContentType("application/json")) 34 rsp := &TestRsp{} 35 36 reg := rmemory.NewRegistry() 37 brk := bmemory.NewBroker(broker.Registry(reg)) 38 tr := tmemory.NewTransport() 39 40 srv := server.NewServer( 41 server.Broker(brk), 42 server.Registry(reg), 43 server.Name("go.micro.service.foo"), 44 server.Address("127.0.0.1:0"), 45 server.Transport(tr), 46 ) 47 if err = srv.Handle(srv.NewHandler(&TestFoo{})); err != nil { 48 t.Fatal(err) 49 } 50 51 if err = srv.Start(); err != nil { 52 t.Fatal(err) 53 } 54 55 cli := client.NewClient( 56 client.Registry(reg), 57 client.Broker(brk), 58 client.Transport(tr), 59 ) 60 61 w1 := wrapper.StaticClient("xxx_localhost:12345", cli) 62 if err = w1.Call(context.TODO(), req, nil); err == nil { 63 t.Fatal("address xxx_#localhost:12345 must not exists and call must be failed") 64 } 65 66 w2 := wrapper.StaticClient(srv.Options().Address, cli) 67 if err = w2.Call(context.TODO(), req, rsp); err != nil { 68 t.Fatal(err) 69 } else if rsp.Data != "pass" { 70 t.Fatalf("something wrong with response: %#+v", rsp) 71 } 72 }