github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/pkg/serializer/share_test.go (about) 1 package serializer 2 3 import ( 4 "testing" 5 "time" 6 7 model "github.com/cloudreve/Cloudreve/v3/models" 8 "github.com/jinzhu/gorm" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestBuildShareList(t *testing.T) { 13 asserts := assert.New(t) 14 timeNow := time.Now() 15 16 shares := []model.Share{ 17 { 18 Expires: &timeNow, 19 File: model.File{ 20 Model: gorm.Model{ID: 1}, 21 }, 22 }, 23 { 24 Folder: model.Folder{ 25 Model: gorm.Model{ID: 1}, 26 }, 27 }, 28 } 29 30 res := BuildShareList(shares, 2) 31 asserts.Equal(0, res.Code) 32 } 33 34 func TestBuildShareResponse(t *testing.T) { 35 asserts := assert.New(t) 36 37 // 未解锁 38 { 39 share := &model.Share{ 40 User: model.User{Model: gorm.Model{ID: 1}}, 41 Downloads: 1, 42 } 43 res := BuildShareResponse(share, false) 44 asserts.EqualValues(0, res.Downloads) 45 asserts.True(res.Locked) 46 asserts.NotNil(res.Creator) 47 } 48 49 // 已解锁,非目录 50 { 51 expires := time.Now().Add(time.Duration(10) * time.Second) 52 share := &model.Share{ 53 User: model.User{Model: gorm.Model{ID: 1}}, 54 Downloads: 1, 55 Expires: &expires, 56 File: model.File{ 57 Model: gorm.Model{ID: 1}, 58 }, 59 } 60 res := BuildShareResponse(share, true) 61 asserts.EqualValues(1, res.Downloads) 62 asserts.False(res.Locked) 63 asserts.NotEmpty(res.Expire) 64 asserts.NotNil(res.Creator) 65 } 66 67 // 已解锁,是目录 68 { 69 expires := time.Now().Add(time.Duration(10) * time.Second) 70 share := &model.Share{ 71 User: model.User{Model: gorm.Model{ID: 1}}, 72 Downloads: 1, 73 Expires: &expires, 74 Folder: model.Folder{ 75 Model: gorm.Model{ID: 1}, 76 }, 77 IsDir: true, 78 } 79 res := BuildShareResponse(share, true) 80 asserts.EqualValues(1, res.Downloads) 81 asserts.False(res.Locked) 82 asserts.NotEmpty(res.Expire) 83 asserts.NotNil(res.Creator) 84 } 85 }