You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudreve/pkg/filesystem/fsctx/stream_test.go

79 lines
1.3 KiB

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)
}