pkger/pkging/mem/file_test.go

63 lines
1014 B
Go
Raw Normal View History

2019-09-20 17:56:26 +03:00
package mem
import (
"io/ioutil"
"testing"
"github.com/markbates/pkger/here"
2019-09-20 17:56:26 +03:00
"github.com/stretchr/testify/require"
)
func Test_File_Seek(t *testing.T) {
r := require.New(t)
info, err := here.Current()
r.NoError(err)
pkg, err := New(info)
r.NoError(err)
f, err := pkg.Create(":/wilco.band")
r.NoError(err)
data := []byte("a shot in the arm")
f.Write(data)
r.NoError(f.Close())
f, err = pkg.Open(":/wilco.band")
r.NoError(err)
2019-11-21 02:17:36 +03:00
// seek to end of file before read
2019-11-21 04:48:09 +03:00
pos, err := f.Seek(0, 2)
2019-11-21 02:17:36 +03:00
r.NoError(err)
r.Equal(int64(len(data)), pos)
// reset seek
pos, err = f.Seek(0, 0)
r.NoError(err)
r.Equal(int64(0), pos)
2019-09-20 17:56:26 +03:00
b, err := ioutil.ReadAll(f)
r.NoError(err)
r.Equal(data, b)
_, err = f.Seek(0, 0)
r.NoError(err)
b, err = ioutil.ReadAll(f)
r.NoError(err)
r.Equal(data, b)
b, err = ioutil.ReadAll(f)
r.NoError(err)
r.NotEqual(data, b)
_, err = f.Seek(10, 0)
r.NoError(err)
b, err = ioutil.ReadAll(f)
r.NoError(err)
r.NotEqual(data, b)
r.Equal([]byte("the arm"), b)
}