io: implement ReadBytes()

This commit is contained in:
Evgenii Stratonikov 2019-12-06 18:37:46 +03:00
parent 838050f8b5
commit fccb008594
22 changed files with 72 additions and 38 deletions

View file

@ -332,3 +332,28 @@ func TestBinReader_ReadArray(t *testing.T) {
r.Err = errors.New("error")
require.Panics(t, func() { r.ReadArray(1) })
}
func TestBinReader_ReadBytes(t *testing.T) {
data := []byte{0, 1, 2, 3, 4, 5, 6, 7}
r := NewBinReaderFromBuf(data)
buf := make([]byte, 4)
r.ReadBytes(buf)
require.NoError(t, r.Err)
require.Equal(t, data[:4], buf)
r.ReadBytes([]byte{})
require.NoError(t, r.Err)
buf = make([]byte, 3)
r.ReadBytes(buf)
require.NoError(t, r.Err)
require.Equal(t, data[4:7], buf)
buf = make([]byte, 2)
r.ReadBytes(buf)
require.Error(t, r.Err)
r.ReadBytes([]byte{})
require.Error(t, r.Err)
}