github.com/lingyao2333/mo-zero@v1.4.1/core/filex/rangereader_test.go (about) 1 package filex 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/lingyao2333/mo-zero/core/fs" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestRangeReader(t *testing.T) { 12 const text = `hello 13 world` 14 file, err := fs.TempFileWithText(text) 15 assert.Nil(t, err) 16 defer func() { 17 file.Close() 18 os.Remove(file.Name()) 19 }() 20 21 reader := NewRangeReader(file, 5, 8) 22 buf := make([]byte, 10) 23 n, err := reader.Read(buf) 24 assert.Nil(t, err) 25 assert.Equal(t, 3, n) 26 assert.Equal(t, ` 27 wo`, string(buf[:n])) 28 } 29 30 func TestRangeReader_OutOfRange(t *testing.T) { 31 const text = `hello 32 world` 33 file, err := fs.TempFileWithText(text) 34 assert.Nil(t, err) 35 defer func() { 36 file.Close() 37 os.Remove(file.Name()) 38 }() 39 40 reader := NewRangeReader(file, 50, 8) 41 buf := make([]byte, 10) 42 _, err = reader.Read(buf) 43 assert.NotNil(t, err) 44 }