Test: new changes pkg remote, fsctx, part of filesystem

This commit is contained in:
HFO4
2022-03-29 20:13:05 +08:00
parent c6130ab078
commit 1c0a735df8
19 changed files with 1042 additions and 1317 deletions

View File

@@ -2,6 +2,7 @@ package filesystem
import (
"context"
"errors"
"os"
"testing"
@@ -19,8 +20,9 @@ import (
func TestFileSystem_AddFile(t *testing.T) {
asserts := assert.New(t)
file := fsctx.FileStream{
Size: 5,
Name: "1.png",
Size: 5,
Name: "1.png",
SavePath: "/Uploads/1_sad.png",
}
folder := model.Folder{
Model: gorm.Model{
@@ -39,24 +41,55 @@ func TestFileSystem_AddFile(t *testing.T) {
},
},
},
Policy: &model.Policy{Type: "cos"},
}
ctx := context.WithValue(context.Background(), fsctx.FileHeaderCtx, file)
ctx = context.WithValue(ctx, fsctx.SavePathCtx, "/Uploads/1_sad.png")
_, err := fs.AddFile(ctx, &folder)
_, err := fs.AddFile(context.Background(), &folder, &file)
asserts.Error(err)
mock.ExpectBegin()
mock.ExpectExec("INSERT(.+)").WillReturnResult(sqlmock.NewResult(1, 1))
mock.ExpectExec("UPDATE(.+)storage(.+)").WillReturnResult(sqlmock.NewResult(1, 1))
mock.ExpectCommit()
f, err := fs.AddFile(ctx, &folder)
f, err := fs.AddFile(context.Background(), &folder, &file)
asserts.NoError(err)
asserts.NoError(mock.ExpectationsWereMet())
asserts.Equal("/Uploads/1_sad.png", f.SourceName)
asserts.NotEmpty(f.PicInfo)
// 前置钩子执行失败
{
hookExecuted := false
fs.Use("BeforeAddFile", func(ctx context.Context, fs *FileSystem, file fsctx.FileHeader) error {
hookExecuted = true
return errors.New("error")
})
f, err := fs.AddFile(context.Background(), &folder, &file)
asserts.Error(err)
asserts.Nil(f)
asserts.True(hookExecuted)
}
// 后置钩子执行失败
{
hookExecuted := false
mock.ExpectBegin()
mock.ExpectExec("INSERT(.+)").WillReturnError(errors.New("error"))
mock.ExpectRollback()
fs.Hooks = map[string][]Hook{}
fs.Use("AfterValidateFailed", func(ctx context.Context, fs *FileSystem, file fsctx.FileHeader) error {
hookExecuted = true
return errors.New("error")
})
f, err := fs.AddFile(context.Background(), &folder, &file)
asserts.Error(err)
asserts.Nil(f)
asserts.True(hookExecuted)
asserts.NoError(mock.ExpectationsWereMet())
}
}
func TestFileSystem_GetContent(t *testing.T) {
@@ -263,6 +296,22 @@ func TestFileSystem_deleteGroupedFile(t *testing.T) {
3: {},
}, failed)
}
// 包含上传会话文件
{
sessionID := "session"
cache.Set(UploadSessionCachePrefix+sessionID, serializer.UploadSession{Key: sessionID}, 0)
files[1].Policy.Type = "local"
files[3].Policy.Type = "local"
files[0].UploadSessionID = &sessionID
failed := fs.deleteGroupedFile(ctx, fs.GroupFileByPolicy(ctx, files))
asserts.Equal(map[uint][]string{
1: {},
2: {},
3: {},
}, failed)
_, ok := cache.Get(UploadSessionCachePrefix + sessionID)
asserts.False(ok)
}
}
func TestFileSystem_GetSource(t *testing.T) {