diff options
author | Chris <ccbrown112@gmail.com> | 2017-10-06 11:08:59 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-06 11:08:59 -0700 |
commit | 70e5f00241473c27a3008959ce08832c75e76ba8 (patch) | |
tree | 3afd074964c9220cc4a87210286a13dfd38c61d0 /store/sqlstore/file_info_store_test.go | |
parent | d1958bdc49cd10277ca2e27bb2eea499c5994954 (diff) | |
download | chat-70e5f00241473c27a3008959ce08832c75e76ba8.tar.gz chat-70e5f00241473c27a3008959ce08832c75e76ba8.tar.bz2 chat-70e5f00241473c27a3008959ce08832c75e76ba8.zip |
store/storetest package (#7588)
* prerequisites
* storetest package
Diffstat (limited to 'store/sqlstore/file_info_store_test.go')
-rw-r--r-- | store/sqlstore/file_info_store_test.go | 294 |
1 files changed, 4 insertions, 290 deletions
diff --git a/store/sqlstore/file_info_store_test.go b/store/sqlstore/file_info_store_test.go index 8ddf34e19..c1295ee54 100644 --- a/store/sqlstore/file_info_store_test.go +++ b/store/sqlstore/file_info_store_test.go @@ -1,300 +1,14 @@ -// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package sqlstore import ( - "fmt" "testing" - "github.com/mattermost/mattermost-server/model" - "github.com/mattermost/mattermost-server/store" + "github.com/mattermost/mattermost-server/store/storetest" ) -func TestFileInfoSaveGet(t *testing.T) { - ss := Setup() - - info := &model.FileInfo{ - CreatorId: model.NewId(), - Path: "file.txt", - } - - if result := <-ss.FileInfo().Save(info); result.Err != nil { - t.Fatal(result.Err) - } else if returned := result.Data.(*model.FileInfo); len(returned.Id) == 0 { - t.Fatal("should've assigned an id to FileInfo") - } else { - info = returned - } - defer func() { - <-ss.FileInfo().PermanentDelete(info.Id) - }() - - if result := <-ss.FileInfo().Get(info.Id); result.Err != nil { - t.Fatal(result.Err) - } else if returned := result.Data.(*model.FileInfo); returned.Id != info.Id { - t.Log(info) - t.Log(returned) - t.Fatal("should've returned correct FileInfo") - } - - info2 := store.Must(ss.FileInfo().Save(&model.FileInfo{ - CreatorId: model.NewId(), - Path: "file.txt", - DeleteAt: 123, - })).(*model.FileInfo) - - if result := <-ss.FileInfo().Get(info2.Id); result.Err == nil { - t.Fatal("shouldn't have gotten deleted file") - } - defer func() { - <-ss.FileInfo().PermanentDelete(info2.Id) - }() -} - -func TestFileInfoSaveGetByPath(t *testing.T) { - ss := Setup() - - info := &model.FileInfo{ - CreatorId: model.NewId(), - Path: fmt.Sprintf("%v/file.txt", model.NewId()), - } - - if result := <-ss.FileInfo().Save(info); result.Err != nil { - t.Fatal(result.Err) - } else if returned := result.Data.(*model.FileInfo); len(returned.Id) == 0 { - t.Fatal("should've assigned an id to FileInfo") - } else { - info = returned - } - defer func() { - <-ss.FileInfo().PermanentDelete(info.Id) - }() - - if result := <-ss.FileInfo().GetByPath(info.Path); result.Err != nil { - t.Fatal(result.Err) - } else if returned := result.Data.(*model.FileInfo); returned.Id != info.Id { - t.Log(info) - t.Log(returned) - t.Fatal("should've returned correct FileInfo") - } - - info2 := store.Must(ss.FileInfo().Save(&model.FileInfo{ - CreatorId: model.NewId(), - Path: "file.txt", - DeleteAt: 123, - })).(*model.FileInfo) - - if result := <-ss.FileInfo().GetByPath(info2.Id); result.Err == nil { - t.Fatal("shouldn't have gotten deleted file") - } - defer func() { - <-ss.FileInfo().PermanentDelete(info2.Id) - }() -} - -func TestFileInfoGetForPost(t *testing.T) { - ss := Setup() - - userId := model.NewId() - postId := model.NewId() - - infos := []*model.FileInfo{ - { - PostId: postId, - CreatorId: userId, - Path: "file.txt", - }, - { - PostId: postId, - CreatorId: userId, - Path: "file.txt", - }, - { - PostId: postId, - CreatorId: userId, - Path: "file.txt", - DeleteAt: 123, - }, - { - PostId: model.NewId(), - CreatorId: userId, - Path: "file.txt", - }, - } - - for i, info := range infos { - infos[i] = store.Must(ss.FileInfo().Save(info)).(*model.FileInfo) - defer func(id string) { - <-ss.FileInfo().PermanentDelete(id) - }(infos[i].Id) - } - - if result := <-ss.FileInfo().GetForPost(postId, true, false); result.Err != nil { - t.Fatal(result.Err) - } else if returned := result.Data.([]*model.FileInfo); len(returned) != 2 { - t.Fatal("should've returned exactly 2 file infos") - } - - if result := <-ss.FileInfo().GetForPost(postId, false, false); result.Err != nil { - t.Fatal(result.Err) - } else if returned := result.Data.([]*model.FileInfo); len(returned) != 2 { - t.Fatal("should've returned exactly 2 file infos") - } - - if result := <-ss.FileInfo().GetForPost(postId, true, true); result.Err != nil { - t.Fatal(result.Err) - } else if returned := result.Data.([]*model.FileInfo); len(returned) != 2 { - t.Fatal("should've returned exactly 2 file infos") - } -} - -func TestFileInfoAttachToPost(t *testing.T) { - ss := Setup() - - userId := model.NewId() - postId := model.NewId() - - info1 := store.Must(ss.FileInfo().Save(&model.FileInfo{ - CreatorId: userId, - Path: "file.txt", - })).(*model.FileInfo) - defer func() { - <-ss.FileInfo().PermanentDelete(info1.Id) - }() - - if len(info1.PostId) != 0 { - t.Fatal("file shouldn't have a PostId") - } - - if result := <-ss.FileInfo().AttachToPost(info1.Id, postId); result.Err != nil { - t.Fatal(result.Err) - } else { - info1 = store.Must(ss.FileInfo().Get(info1.Id)).(*model.FileInfo) - } - - if len(info1.PostId) == 0 { - t.Fatal("file should now have a PostId") - } - - info2 := store.Must(ss.FileInfo().Save(&model.FileInfo{ - CreatorId: userId, - Path: "file.txt", - })).(*model.FileInfo) - defer func() { - <-ss.FileInfo().PermanentDelete(info2.Id) - }() - - if result := <-ss.FileInfo().AttachToPost(info2.Id, postId); result.Err != nil { - t.Fatal(result.Err) - } else { - info2 = store.Must(ss.FileInfo().Get(info2.Id)).(*model.FileInfo) - } - - if result := <-ss.FileInfo().GetForPost(postId, true, false); result.Err != nil { - t.Fatal(result.Err) - } else if infos := result.Data.([]*model.FileInfo); len(infos) != 2 { - t.Fatal("should've returned exactly 2 file infos") - } -} - -func TestFileInfoDeleteForPost(t *testing.T) { - ss := Setup() - - userId := model.NewId() - postId := model.NewId() - - infos := []*model.FileInfo{ - { - PostId: postId, - CreatorId: userId, - Path: "file.txt", - }, - { - PostId: postId, - CreatorId: userId, - Path: "file.txt", - }, - { - PostId: postId, - CreatorId: userId, - Path: "file.txt", - DeleteAt: 123, - }, - { - PostId: model.NewId(), - CreatorId: userId, - Path: "file.txt", - }, - } - - for i, info := range infos { - infos[i] = store.Must(ss.FileInfo().Save(info)).(*model.FileInfo) - defer func(id string) { - <-ss.FileInfo().PermanentDelete(id) - }(infos[i].Id) - } - - if result := <-ss.FileInfo().DeleteForPost(postId); result.Err != nil { - t.Fatal(result.Err) - } - - if infos := store.Must(ss.FileInfo().GetForPost(postId, true, false)).([]*model.FileInfo); len(infos) != 0 { - t.Fatal("shouldn't have returned any file infos") - } -} - -func TestFileInfoPermanentDelete(t *testing.T) { - ss := Setup() - - info := store.Must(ss.FileInfo().Save(&model.FileInfo{ - PostId: model.NewId(), - CreatorId: model.NewId(), - Path: "file.txt", - })).(*model.FileInfo) - - if result := <-ss.FileInfo().PermanentDelete(info.Id); result.Err != nil { - t.Fatal(result.Err) - } -} - -func TestFileInfoPermanentDeleteBatch(t *testing.T) { - ss := Setup() - - postId := model.NewId() - - store.Must(ss.FileInfo().Save(&model.FileInfo{ - PostId: postId, - CreatorId: model.NewId(), - Path: "file.txt", - CreateAt: 1000, - })) - - store.Must(ss.FileInfo().Save(&model.FileInfo{ - PostId: postId, - CreatorId: model.NewId(), - Path: "file.txt", - CreateAt: 1200, - })) - - store.Must(ss.FileInfo().Save(&model.FileInfo{ - PostId: postId, - CreatorId: model.NewId(), - Path: "file.txt", - CreateAt: 2000, - })) - - if result := <-ss.FileInfo().GetForPost(postId, true, false); result.Err != nil { - t.Fatal(result.Err) - } else if len(result.Data.([]*model.FileInfo)) != 3 { - t.Fatal("Expected 3 fileInfos") - } - - store.Must(ss.FileInfo().PermanentDeleteBatch(1500, 1000)) - - if result := <-ss.FileInfo().GetForPost(postId, true, false); result.Err != nil { - t.Fatal(result.Err) - } else if len(result.Data.([]*model.FileInfo)) != 1 { - t.Fatal("Expected 3 fileInfos") - } +func TestFileInfoStore(t *testing.T) { + StoreTest(t, storetest.TestFileInfoStore) } |