diff options
Diffstat (limited to 'store/storetest/system_store.go')
-rw-r--r-- | store/storetest/system_store.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/store/storetest/system_store.go b/store/storetest/system_store.go new file mode 100644 index 000000000..32c39ee41 --- /dev/null +++ b/store/storetest/system_store.go @@ -0,0 +1,58 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package storetest + +import ( + "testing" + + "github.com/mattermost/mattermost-server/model" + "github.com/mattermost/mattermost-server/store" +) + +func TestSystemStore(t *testing.T, ss store.Store) { + t.Run("", func(t *testing.T) { testSystemStore(t, ss) }) + t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, ss) }) +} + +func testSystemStore(t *testing.T, ss store.Store) { + system := &model.System{Name: model.NewId(), Value: "value"} + store.Must(ss.System().Save(system)) + + result := <-ss.System().Get() + systems := result.Data.(model.StringMap) + + if systems[system.Name] != system.Value { + t.Fatal() + } + + system.Value = "value2" + store.Must(ss.System().Update(system)) + + result2 := <-ss.System().Get() + systems2 := result2.Data.(model.StringMap) + + if systems2[system.Name] != system.Value { + t.Fatal() + } + + result3 := <-ss.System().GetByName(system.Name) + rsystem := result3.Data.(*model.System) + if rsystem.Value != system.Value { + t.Fatal() + } +} + +func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) { + system := &model.System{Name: model.NewId(), Value: "value"} + + if err := (<-ss.System().SaveOrUpdate(system)).Err; err != nil { + t.Fatal(err) + } + + system.Value = "value2" + + if r := <-ss.System().SaveOrUpdate(system); r.Err != nil { + t.Fatal(r.Err) + } +} |