Add test for nullio.ReadWriter
This commit is contained in:
@ -13,12 +13,16 @@ func (r Reader) Read(_ []byte) (int, error) {
|
|||||||
select {}
|
select {}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadWriter implements io.ReadWriter and does nothing on Read an Write.
|
// ReadWriter implements io.ReadWriter. It does not return from Read and discards everything on Write.
|
||||||
type ReadWriter struct {
|
type ReadWriter struct {
|
||||||
Reader
|
Reader
|
||||||
}
|
}
|
||||||
|
|
||||||
func (nrw *ReadWriter) Write(p []byte) (int, error) {
|
func (rw *ReadWriter) Write(p []byte) (int, error) {
|
||||||
n, err := io.Discard.Write(p)
|
n, err := io.Discard.Write(p)
|
||||||
return n, fmt.Errorf("error writing to io.Discard: %w", err)
|
if err != nil {
|
||||||
|
return n, fmt.Errorf("error writing to io.Discard: %w", err)
|
||||||
|
} else {
|
||||||
|
return n, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,3 +29,11 @@ func TestReaderDoesNotReturnImmediately(t *testing.T) {
|
|||||||
|
|
||||||
assert.False(t, received)
|
assert.False(t, received)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestReadWriterWritesEverything(t *testing.T) {
|
||||||
|
readWriter := &ReadWriter{}
|
||||||
|
p := []byte{1, 2, 3}
|
||||||
|
n, err := readWriter.Write(p)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, len(p), n)
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user