package fsctx import ( model "github.com/cloudreve/Cloudreve/v3/models" "github.com/stretchr/testify/assert" "io" "io/ioutil" "os" "strings" "testing" ) func TestFileStream_Read(t *testing.T) { asserts := assert.New(t) file := FileStream{ File: ioutil.NopCloser(strings.NewReader("123")), } var p = make([]byte, 3) { n, err := file.Read(p) asserts.Equal(3, n) asserts.NoError(err) } } func TestFileStream_Close(t *testing.T) { asserts := assert.New(t) { file := FileStream{ File: ioutil.NopCloser(strings.NewReader("123")), } err := file.Close() asserts.NoError(err) } { file := FileStream{} err := file.Close() asserts.NoError(err) } } func TestFileStream_Seek(t *testing.T) { asserts := assert.New(t) f, _ := os.CreateTemp("", "*") defer func() { f.Close() os.Remove(f.Name()) }() { file := FileStream{ File: f, Seeker: f, } res, err := file.Seek(0, io.SeekStart) asserts.NoError(err) asserts.EqualValues(0, res) } { file := FileStream{} res, err := file.Seek(0, io.SeekStart) asserts.Error(err) asserts.EqualValues(0, res) } } func TestFileStream_Info(t *testing.T) { a := assert.New(t) file := FileStream{} a.NotNil(file.Info()) file.SetSize(10) a.EqualValues(10, file.Info().Size) file.SetModel(&model.File{}) a.NotNil(file.Info().Model) }