Skip to content

Commit 7df43bc

Browse files
authored
Cleaned up io.Reader creation in unit tests (#2363)
1 parent eab419b commit 7df43bc

33 files changed

+106
-121
lines changed

encoding/json/inbound_test.go

+6-11
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,11 @@
2121
package json
2222

2323
import (
24-
"bytes"
2524
"context"
2625
"encoding/json"
2726
"errors"
28-
"io"
2927
"reflect"
28+
"strings"
3029
"testing"
3130

3231
"github.com/stretchr/testify/assert"
@@ -63,7 +62,7 @@ func TestHandleStructSuccess(t *testing.T) {
6362
err := handler.Handle(context.Background(), &transport.Request{
6463
Procedure: "simpleCall",
6564
Encoding: "json",
66-
Body: jsonBody(`{"name": "foo", "attributes": {"bar": 42}}`),
65+
Body: strings.NewReader(`{"name": "foo", "attributes": {"bar": 42}}`),
6766
}, resw)
6867
require.NoError(t, err)
6968

@@ -90,7 +89,7 @@ func TestHandleMapSuccess(t *testing.T) {
9089
err := handler.Handle(context.Background(), &transport.Request{
9190
Procedure: "foo",
9291
Encoding: "json",
93-
Body: jsonBody(`{"foo": 42, "bar": ["a", "b", "c"]}`),
92+
Body: strings.NewReader(`{"foo": 42, "bar": ["a", "b", "c"]}`),
9493
}, resw)
9594
require.NoError(t, err)
9695

@@ -110,7 +109,7 @@ func TestHandleInterfaceEmptySuccess(t *testing.T) {
110109
err := handler.Handle(context.Background(), &transport.Request{
111110
Procedure: "foo",
112111
Encoding: "json",
113-
Body: jsonBody(`["a", "b", "c"]`),
112+
Body: strings.NewReader(`["a", "b", "c"]`),
114113
}, resw)
115114
require.NoError(t, err)
116115

@@ -132,7 +131,7 @@ func TestHandleSuccessWithResponseHeaders(t *testing.T) {
132131
err := handler.Handle(context.Background(), &transport.Request{
133132
Procedure: "simpleCall",
134133
Encoding: "json",
135-
Body: jsonBody(`{"name": "foo", "attributes": {"bar": 42}}`),
134+
Body: strings.NewReader(`{"name": "foo", "attributes": {"bar": 42}}`),
136135
}, resw)
137136
require.NoError(t, err)
138137

@@ -157,7 +156,7 @@ func TestHandleBothResponseError(t *testing.T) {
157156
err := handler.Handle(context.Background(), &transport.Request{
158157
Procedure: "simpleCall",
159158
Encoding: "json",
160-
Body: jsonBody(`{"name": "foo", "attributes": {"bar": 42}}`),
159+
Body: strings.NewReader(`{"name": "foo", "attributes": {"bar": 42}}`),
161160
}, resw)
162161
require.Equal(t, errors.New("bar"), err)
163162

@@ -166,7 +165,3 @@ func TestHandleBothResponseError(t *testing.T) {
166165

167166
assert.Equal(t, simpleResponse{Success: true}, response)
168167
}
169-
170-
func jsonBody(s string) io.Reader {
171-
return bytes.NewReader([]byte(s))
172-
}

encoding/json/outbound_test.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
package json
2222

2323
import (
24-
"bytes"
2524
"context"
2625
"errors"
2726
"io"
2827
"reflect"
28+
"strings"
2929
"testing"
3030

3131
"github.com/golang/mock/gomock"
@@ -123,12 +123,11 @@ func TestCall(t *testing.T) {
123123
Procedure: tt.procedure,
124124
Encoding: Encoding,
125125
Headers: transport.HeadersFromMap(tt.headers),
126-
Body: bytes.NewReader([]byte(tt.encodedRequest)),
126+
Body: strings.NewReader(tt.encodedRequest),
127127
}),
128128
).Return(
129129
&transport.Response{
130-
Body: io.NopCloser(
131-
bytes.NewReader([]byte(tt.encodedResponse))),
130+
Body: io.NopCloser(strings.NewReader(tt.encodedResponse)),
132131
Headers: transport.HeadersFromMap(tt.wantHeaders),
133132
}, tt.responseErr)
134133
}
@@ -229,7 +228,7 @@ func TestCallOneway(t *testing.T) {
229228
Procedure: tt.procedure,
230229
Encoding: Encoding,
231230
Headers: transport.HeadersFromMap(tt.headers),
232-
Body: bytes.NewReader([]byte(tt.encodedRequest)),
231+
Body: strings.NewReader(tt.encodedRequest),
233232
})
234233

235234
if tt.wantErr != "" {

encoding/protobuf/marshal_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
package protobuf
2222

2323
import (
24-
"bytes"
24+
"strings"
2525
"testing"
2626

2727
"github.com/stretchr/testify/assert"
@@ -31,7 +31,7 @@ import (
3131

3232
func TestUnhandledEncoding(t *testing.T) {
3333
assert.Equal(t, yarpcerrors.CodeInternal,
34-
yarpcerrors.FromError(unmarshal(transport.Encoding("foo"), bytes.NewReader([]byte("foo")), nil, newCodec(nil))).Code())
34+
yarpcerrors.FromError(unmarshal(transport.Encoding("foo"), strings.NewReader("foo"), nil, newCodec(nil))).Code())
3535
_, _, err := marshal(transport.Encoding("foo"), nil, newCodec(nil))
3636
assert.Equal(t, yarpcerrors.CodeInternal, yarpcerrors.FromError(err).Code())
3737
}

encoding/protobuf/v2/marshal_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
package v2
2222

2323
import (
24-
"bytes"
24+
"strings"
2525
"testing"
2626

2727
"github.com/stretchr/testify/assert"
@@ -31,7 +31,7 @@ import (
3131

3232
func TestUnhandledEncoding(t *testing.T) {
3333
assert.Equal(t, yarpcerrors.CodeInternal,
34-
yarpcerrors.FromError(unmarshal(transport.Encoding("foo"), bytes.NewReader([]byte("foo")), nil, newCodec(nil))).Code())
34+
yarpcerrors.FromError(unmarshal(transport.Encoding("foo"), strings.NewReader("foo"), nil, newCodec(nil))).Code())
3535
_, _, err := marshal(transport.Encoding("foo"), nil, newCodec(nil))
3636
assert.Equal(t, yarpcerrors.CodeInternal, yarpcerrors.FromError(err).Code())
3737
}

encoding/thrift/envelope_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"io"
2727
"math/rand"
2828
"reflect"
29+
"strings"
2930
"testing"
3031
"testing/quick"
3132
"time"
@@ -85,7 +86,7 @@ func TestDisableEnveloperEncode(t *testing.T) {
8586

8687
func TestDisableEnveloperNoWireRead(t *testing.T) {
8788
cont := "some buffered contents"
88-
buf := bytes.NewBuffer([]byte(cont))
89+
buf := strings.NewReader(cont)
8990
evnw := disableEnvelopingNoWireProtocol{Protocol: binary.Default, Type: wire.Call}
9091
sr := evnw.Reader(buf)
9192
evh, err := sr.ReadEnvelopeBegin()

encoding/thrift/inbound_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
package thrift
2323

2424
import (
25-
"bytes"
2625
"context"
2726
"errors"
2827
"fmt"
2928
"io"
29+
"strings"
3030
"testing"
3131

3232
"github.com/golang/mock/gomock"
@@ -440,7 +440,7 @@ func request() *transport.Request {
440440
Service: "service",
441441
Encoding: "thrift",
442442
Procedure: "MyService::someMethod",
443-
Body: bytes.NewReader([]byte("irrelevant")),
443+
Body: strings.NewReader("irrelevant"),
444444
}
445445
}
446446

encoding/thrift/multiplex_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func TestMultiplexedDecode(t *testing.T) {
140140
SeqID: 42,
141141
}, nil)
142142

143-
gotEnvelope, err := proto.DecodeEnveloped(bytes.NewReader([]byte{}))
143+
gotEnvelope, err := proto.DecodeEnveloped(bytes.NewReader(nil))
144144
if assert.NoError(t, err) {
145145
assert.Equal(t, tt.wantName, gotEnvelope.Name)
146146
}

encoding/thrift/outbound_nowire_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
package thrift
2222

2323
import (
24-
"bytes"
2524
"context"
2625
"encoding/binary"
2726
"errors"
2827
"io"
28+
"strings"
2929
"testing"
3030

3131
"github.com/golang/mock/gomock"
@@ -173,10 +173,10 @@ func TestNoWireClientCall(t *testing.T) {
173173
Service: "service",
174174
Encoding: Encoding,
175175
Procedure: "MyService::someMethod",
176-
Body: bytes.NewReader([]byte(tt.wantRequestBody)),
176+
Body: strings.NewReader(tt.wantRequestBody),
177177
}),
178178
).Return(&transport.Response{
179-
Body: readCloser{bytes.NewReader([]byte(tt.giveResponseBody))},
179+
Body: io.NopCloser(strings.NewReader(tt.giveResponseBody)),
180180
}, nil)
181181
}
182182

@@ -281,7 +281,7 @@ func TestNoWireClientOneway(t *testing.T) {
281281
Service: "service",
282282
Encoding: Encoding,
283283
Procedure: "MyService::someMethod",
284-
Body: bytes.NewReader([]byte(tt.wantRequestBody)),
284+
Body: strings.NewReader(tt.wantRequestBody),
285285
}),
286286
).Return(nil, errors.New("oneway outbound error"))
287287
} else {
@@ -291,7 +291,7 @@ func TestNoWireClientOneway(t *testing.T) {
291291
Service: "service",
292292
Encoding: Encoding,
293293
Procedure: "MyService::someMethod",
294-
Body: bytes.NewReader([]byte(tt.wantRequestBody)),
294+
Body: strings.NewReader(tt.wantRequestBody),
295295
}),
296296
).Return(&successAck{}, nil)
297297
}

encoding/thrift/outbound_test.go

+7-12
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"context"
2626
"errors"
2727
"io"
28+
"strings"
2829
"testing"
2930

3031
"github.com/golang/mock/gomock"
@@ -74,23 +75,23 @@ func TestClient(t *testing.T) {
7475
Type: wire.Reply,
7576
Value: wire.NewValueStruct(wire.Struct{}),
7677
},
77-
responseBody: readCloser{bytes.NewReader([]byte("irrelevant"))},
78+
responseBody: io.NopCloser(strings.NewReader("irrelevant")),
7879
},
7980
{
8081
desc: "happy case without enveloping",
8182
giveRequestBody: fakeEnveloper(wire.Call),
8283
wantRequestBody: valueptr(wire.NewValueStruct(wire.Struct{})),
8384
expectCall: true,
8485
giveResponseBody: valueptr(wire.NewValueStruct(wire.Struct{})),
85-
responseBody: readCloser{bytes.NewReader([]byte("irrelevant"))},
86+
responseBody: io.NopCloser(strings.NewReader("irrelevant")),
8687
},
8788
{
8889
desc: "wrong envelope type for request",
8990
clientOptions: []ClientOption{Enveloped},
9091
giveRequestBody: fakeEnveloper(wire.Reply),
9192
wantError: `failed to encode "thrift" request body for procedure ` +
9293
`"MyService::someMethod" of service "service": unexpected envelope type: Reply`,
93-
responseBody: readCloser{bytes.NewReader([]byte("irrelevant"))},
94+
responseBody: io.NopCloser(strings.NewReader("irrelevant")),
9495
},
9596
{
9697
desc: "TApplicationException",
@@ -115,7 +116,7 @@ func TestClient(t *testing.T) {
115116
wantError: `thrift request to procedure "MyService::someMethod" of ` +
116117
`service "service" encountered an internal failure: ` +
117118
"TApplicationException{Message: great sadness, Type: PROTOCOL_ERROR}",
118-
responseBody: readCloser{bytes.NewReader([]byte("irrelevant"))},
119+
responseBody: io.NopCloser(strings.NewReader("irrelevant")),
119120
},
120121
{
121122
desc: "wrong envelope type for response",
@@ -136,7 +137,7 @@ func TestClient(t *testing.T) {
136137
},
137138
wantError: `failed to decode "thrift" response body for procedure ` +
138139
`"MyService::someMethod" of service "service": unexpected envelope type: Call`,
139-
responseBody: io.NopCloser(bytes.NewReader([]byte("irrelevant"))),
140+
responseBody: io.NopCloser(strings.NewReader("irrelevant")),
140141
},
141142
}
142143

@@ -173,7 +174,7 @@ func TestClient(t *testing.T) {
173174
Service: "service",
174175
Encoding: Encoding,
175176
Procedure: "MyService::someMethod",
176-
Body: bytes.NewReader([]byte("irrelevant")),
177+
Body: strings.NewReader("irrelevant"),
177178
}),
178179
).Return(&transport.Response{
179180
Body: tt.responseBody,
@@ -328,9 +329,3 @@ func TestClientOneway(t *testing.T) {
328329
}
329330
}
330331
}
331-
332-
type readCloser struct {
333-
*bytes.Reader
334-
}
335-
336-
func (r readCloser) Close() error { return nil }

internal/examples/thrift-keyvalue/keyvalue/client/cache.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (c *cacheOutboundMiddleware) Call(ctx context.Context, request *transport.R
6363
if err != nil {
6464
return nil, err
6565
}
66-
request.Body = io.NopCloser(bytes.NewReader(body))
66+
request.Body = bytes.NewReader(body)
6767

6868
if v, ok := data[string(body)]; ok {
6969
fmt.Println("cache hit")

internal/observability/middleware_test.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
package observability
2222

2323
import (
24-
"bytes"
2524
"context"
2625
"errors"
2726
"fmt"
@@ -3469,7 +3468,7 @@ func TestStreamingMetrics(t *testing.T) {
34693468
&fakeStream{
34703469
request: req,
34713470
receiveMsg: &transport.StreamMessage{
3472-
Body: readCloser{bytes.NewReader([]byte("Foobar"))},
3471+
Body: io.NopCloser(strings.NewReader("Foobar")),
34733472
BodySize: 6,
34743473
},
34753474
},
@@ -3480,7 +3479,7 @@ func TestStreamingMetrics(t *testing.T) {
34803479
err := stream.SendMessage(
34813480
context.Background(),
34823481
&transport.StreamMessage{
3483-
Body: readCloser{bytes.NewReader([]byte("test"))},
3482+
Body: io.NopCloser(strings.NewReader("test")),
34843483
BodySize: 4,
34853484
},
34863485
)
@@ -3821,14 +3820,6 @@ func TestNewWriterIsEmpty(t *testing.T) {
38213820
"expected empty writer, fields were likely not cleared in the pool")
38223821
}
38233822

3824-
type readCloser struct {
3825-
*bytes.Reader
3826-
}
3827-
3828-
func (r readCloser) Close() error {
3829-
return nil
3830-
}
3831-
38323823
func BenchmarkMiddlewareHandle(b *testing.B) {
38333824
m := NewMiddleware(Config{
38343825
Logger: zap.NewNop(),

serialize/serialize_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ package serialize
2323
import (
2424
"bytes"
2525
"context"
26+
"strings"
2627
"testing"
2728
"time"
2829

@@ -79,7 +80,7 @@ func TestDeserializationFailure(t *testing.T) {
7980
Caller: "Caller",
8081
Service: "ServiceName",
8182
Procedure: "Procedure",
82-
Body: bytes.NewReader([]byte("someBODY")),
83+
Body: strings.NewReader("someBODY"),
8384
}
8485

8586
marshalledReq, err := ToBytes(tracer, spanContext, req)

transport/grpc/integration_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1039,7 +1039,7 @@ func TestYARPCErrorsConverted(t *testing.T) {
10391039
Service: "service",
10401040
Encoding: "encoding",
10411041
Procedure: "no procedure",
1042-
Body: bytes.NewBufferString("foo-body"),
1042+
Body: strings.NewReader("foo-body"),
10431043
})
10441044

10451045
require.Error(t, err)

transport/grpc/outbound_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
package grpc
2222

2323
import (
24-
"bytes"
2524
"context"
2625
"net"
26+
"strings"
2727
"testing"
2828
"time"
2929

@@ -334,7 +334,7 @@ func TestCallServiceMatch(t *testing.T) {
334334
req := &transport.Request{
335335
Service: "Service",
336336
Procedure: "Hello",
337-
Body: bytes.NewReader([]byte("world")),
337+
Body: strings.NewReader("world"),
338338
}
339339
_, err = out.Call(ctx, req)
340340
if tt.wantErr {

0 commit comments

Comments
 (0)