github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/pkg/filesystem/fsctx/stream_test.go (about) 1 package fsctx 2 3 import ( 4 model "github.com/cloudreve/Cloudreve/v3/models" 5 "github.com/stretchr/testify/assert" 6 "io" 7 "io/ioutil" 8 "os" 9 "strings" 10 "testing" 11 ) 12 13 func TestFileStream_Read(t *testing.T) { 14 asserts := assert.New(t) 15 file := FileStream{ 16 File: ioutil.NopCloser(strings.NewReader("123")), 17 } 18 var p = make([]byte, 3) 19 { 20 n, err := file.Read(p) 21 asserts.Equal(3, n) 22 asserts.NoError(err) 23 } 24 } 25 26 func TestFileStream_Close(t *testing.T) { 27 asserts := assert.New(t) 28 { 29 file := FileStream{ 30 File: ioutil.NopCloser(strings.NewReader("123")), 31 } 32 err := file.Close() 33 asserts.NoError(err) 34 } 35 36 { 37 file := FileStream{} 38 err := file.Close() 39 asserts.NoError(err) 40 } 41 } 42 43 func TestFileStream_Seek(t *testing.T) { 44 asserts := assert.New(t) 45 f, _ := os.CreateTemp("", "*") 46 defer func() { 47 f.Close() 48 os.Remove(f.Name()) 49 }() 50 { 51 file := FileStream{ 52 File: f, 53 Seeker: f, 54 } 55 res, err := file.Seek(0, io.SeekStart) 56 asserts.NoError(err) 57 asserts.EqualValues(0, res) 58 } 59 60 { 61 file := FileStream{} 62 res, err := file.Seek(0, io.SeekStart) 63 asserts.Error(err) 64 asserts.EqualValues(0, res) 65 } 66 } 67 68 func TestFileStream_Info(t *testing.T) { 69 a := assert.New(t) 70 file := FileStream{} 71 a.NotNil(file.Info()) 72 73 file.SetSize(10) 74 a.EqualValues(10, file.Info().Size) 75 76 file.SetModel(&model.File{}) 77 a.NotNil(file.Info().Model) 78 }