Add test for nullio.ReadWriter

This commit is contained in:
Konrad Hanff
2021-07-26 16:26:30 +02:00
parent 8d24bda61a
commit 6929169cb5
2 changed files with 15 additions and 3 deletions

View File

@ -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
}
} }

View File

@ -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)
}