MCPcopy
hub / github.com/connectrpc/connect-go / TestClientPeer

Function TestClientPeer

client_ext_test.go:90–165  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

88}
89
90func TestClientPeer(t *testing.T) {
91 t.Parallel()
92 mux := http.NewServeMux()
93 mux.Handle(pingv1connect.NewPingServiceHandler(pingServer{}))
94 server := memhttptest.NewServer(t, mux)
95
96 run := func(t *testing.T, unaryHTTPMethod string, opts ...connect.ClientOption) {
97 t.Helper()
98 client := pingv1connect.NewPingServiceClient(
99 server.Client(),
100 server.URL(),
101 connect.WithClientOptions(opts...),
102 connect.WithInterceptors(&assertPeerInterceptor{t}),
103 )
104 ctx := t.Context()
105 t.Run("unary", func(t *testing.T) {
106 unaryReq := connect.NewRequest[pingv1.PingRequest](nil)
107 _, err := client.Ping(ctx, unaryReq)
108 assert.Nil(t, err)
109 assert.Equal(t, unaryHTTPMethod, unaryReq.HTTPMethod())
110 text := strings.Repeat(".", 256)
111 r, err := client.Ping(ctx, connect.NewRequest(&pingv1.PingRequest{Text: text}))
112 assert.Nil(t, err)
113 assert.Equal(t, r.Msg.GetText(), text)
114 })
115 t.Run("client_stream", func(t *testing.T) {
116 clientStream := client.Sum(ctx)
117 t.Cleanup(func() {
118 _, closeErr := clientStream.CloseAndReceive()
119 assert.Nil(t, closeErr)
120 })
121 assert.NotZero(t, clientStream.Peer().Addr)
122 assert.NotZero(t, clientStream.Peer().Protocol)
123 err := clientStream.Send(&pingv1.SumRequest{})
124 assert.Nil(t, err)
125 })
126 t.Run("server_stream", func(t *testing.T) {
127 serverStream, err := client.CountUp(ctx, connect.NewRequest(&pingv1.CountUpRequest{}))
128 t.Cleanup(func() {
129 assert.Nil(t, serverStream.Close())
130 })
131 assert.Nil(t, err)
132 })
133 t.Run("bidi_stream", func(t *testing.T) {
134 bidiStream := client.CumSum(ctx)
135 t.Cleanup(func() {
136 assert.Nil(t, bidiStream.CloseRequest())
137 assert.Nil(t, bidiStream.CloseResponse())
138 })
139 assert.NotZero(t, bidiStream.Peer().Addr)
140 assert.NotZero(t, bidiStream.Peer().Protocol)
141 err := bidiStream.Send(&pingv1.CumSumRequest{})
142 assert.Nil(t, err)
143 })
144 }
145
146 t.Run("connect", func(t *testing.T) {
147 t.Parallel()

Callers

nothing calls this directly

Calls 15

ClientMethod · 0.95
URLMethod · 0.95
PingMethod · 0.95
SumMethod · 0.95
CountUpMethod · 0.95
CumSumMethod · 0.95
NewPingServiceHandlerFunction · 0.92
NewServerFunction · 0.92
NewPingServiceClientFunction · 0.92
WithClientOptionsFunction · 0.92
WithInterceptorsFunction · 0.92
NilFunction · 0.92

Tested by

no test coverage detected