github.com/falafeljan/pkger@v0.18.0/pkging/mem/file_test.go (about) 1 package mem 2 3 import ( 4 "io/ioutil" 5 "testing" 6 7 "github.com/markbates/pkger/here" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func Test_File_Seek(t *testing.T) { 12 r := require.New(t) 13 14 info, err := here.Current() 15 r.NoError(err) 16 17 pkg, err := New(info) 18 r.NoError(err) 19 20 f, err := pkg.Create(":/wilco.band") 21 r.NoError(err) 22 23 data := []byte("a shot in the arm") 24 f.Write(data) 25 r.NoError(f.Close()) 26 27 f, err = pkg.Open(":/wilco.band") 28 r.NoError(err) 29 30 // seek to end of file before read 31 pos, err := f.Seek(0, 2) 32 r.NoError(err) 33 r.Equal(int64(len(data)), pos) 34 35 // reset seek 36 pos, err = f.Seek(0, 0) 37 r.NoError(err) 38 r.Equal(int64(0), pos) 39 40 b, err := ioutil.ReadAll(f) 41 r.NoError(err) 42 r.Equal(data, b) 43 44 _, err = f.Seek(0, 0) 45 r.NoError(err) 46 47 b, err = ioutil.ReadAll(f) 48 r.NoError(err) 49 r.Equal(data, b) 50 51 b, err = ioutil.ReadAll(f) 52 r.NoError(err) 53 r.NotEqual(data, b) 54 55 _, err = f.Seek(10, 0) 56 r.NoError(err) 57 58 b, err = ioutil.ReadAll(f) 59 r.NoError(err) 60 r.NotEqual(data, b) 61 r.Equal([]byte("the arm"), b) 62 }