1
0
Fork 0
mirror of https://github.com/sourcegraph/jsonrpc2.git synced 2026-06-19 05:30:03 +02:00

Expose NoopHandler

This commit is contained in:
Jose Garcia 2021-11-25 16:58:13 +00:00 committed by GitHub
parent c9c77b6bb9
commit e8229febb0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 12 deletions

View file

@ -22,7 +22,7 @@ func TestPickID(t *testing.T) {
} }
}) })
connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler) connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler)
connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), noopHandler{}) connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), jsonrpc2.NoopHandler{})
defer connA.Close() defer connA.Close()
defer connB.Close() defer connB.Close()
@ -81,7 +81,7 @@ func TestStringID(t *testing.T) {
} }
}) })
connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler) connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler)
connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), noopHandler{}) connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), jsonrpc2.NoopHandler{})
defer connA.Close() defer connA.Close()
defer connB.Close() defer connB.Close()
@ -131,7 +131,7 @@ func TestExtraField(t *testing.T) {
} }
}) })
connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler) connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler)
connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), noopHandler{}) connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), jsonrpc2.NoopHandler{})
defer connA.Close() defer connA.Close()
defer connB.Close() defer connB.Close()

View file

@ -50,7 +50,7 @@ func TestPlainObjectCodec(t *testing.T) {
connA := jsonrpc2.NewConn( connA := jsonrpc2.NewConn(
context.Background(), context.Background(),
jsonrpc2.NewBufferedStream(cA, jsonrpc2.PlainObjectCodec{}), jsonrpc2.NewBufferedStream(cA, jsonrpc2.PlainObjectCodec{}),
noopHandler{}, jsonrpc2.NoopHandler{},
) )
defer connA.Close() defer connA.Close()

View file

@ -26,13 +26,13 @@ func TestSetLogger(t *testing.T) {
connA := jsonrpc2.NewConn( connA := jsonrpc2.NewConn(
ctx, ctx,
jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}),
noopHandler{}, jsonrpc2.NoopHandler{},
jsonrpc2.SetLogger(logger), jsonrpc2.SetLogger(logger),
) )
connB := jsonrpc2.NewConn( connB := jsonrpc2.NewConn(
ctx, ctx,
jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}),
noopHandler{}, jsonrpc2.NoopHandler{},
) )
defer connA.Close() defer connA.Close()
defer connB.Close() defer connB.Close()

View file

@ -303,6 +303,12 @@ type Handler interface {
Handle(context.Context, *Conn, *Request) Handle(context.Context, *Conn, *Request)
} }
// NoopHandler is a Handler that does nothing. It is useful for
// creating a Handler that can be used as a default handler. It is also
// useful for testing.
type NoopHandler struct {}
func (NoopHandler) Handle(ctx context.Context, conn *Conn, req *Request) {}
// ID represents a JSON-RPC 2.0 request ID, which may be either a // ID represents a JSON-RPC 2.0 request ID, which may be either a
// string or number (or null, which is unsupported). // string or number (or null, which is unsupported).
type ID struct { type ID struct {

View file

@ -265,7 +265,7 @@ func TestHandlerBlocking(t *testing.T) {
wg.Done() wg.Done()
}) })
connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler) connA := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(a, jsonrpc2.VSCodeObjectCodec{}), handler)
connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), noopHandler{}) connB := jsonrpc2.NewConn(ctx, jsonrpc2.NewBufferedStream(b, jsonrpc2.VSCodeObjectCodec{}), jsonrpc2.NoopHandler{})
defer connA.Close() defer connA.Close()
defer connB.Close() defer connB.Close()
@ -287,10 +287,6 @@ func TestHandlerBlocking(t *testing.T) {
} }
} }
type noopHandler struct{}
func (noopHandler) Handle(ctx context.Context, conn *jsonrpc2.Conn, req *jsonrpc2.Request) {}
type readWriteCloser struct { type readWriteCloser struct {
read, write func(p []byte) (n int, err error) read, write func(p []byte) (n int, err error)
} }
@ -348,7 +344,7 @@ func TestConn_DisconnectNotify_Close_async(t *testing.T) {
} }
func TestConn_Close_waitingForResponse(t *testing.T) { func TestConn_Close_waitingForResponse(t *testing.T) {
c := jsonrpc2.NewConn(context.Background(), jsonrpc2.NewBufferedStream(&readWriteCloser{eof, eof}, jsonrpc2.VarintObjectCodec{}), noopHandler{}) c := jsonrpc2.NewConn(context.Background(), jsonrpc2.NewBufferedStream(&readWriteCloser{eof, eof}, jsonrpc2.VarintObjectCodec{}), jsonrpc2.NoopHandler{})
done := make(chan struct{}) done := make(chan struct{})
go func() { go func() {
if err := c.Call(context.Background(), "m", nil, nil); err != jsonrpc2.ErrClosed { if err := c.Call(context.Background(), "m", nil, nil); err != jsonrpc2.ErrClosed {