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  }