github.com/gigforks/mattermost-server@v4.9.1-0.20180619094218-800d97fa55d0+incompatible/store/storetest/system_store.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package storetest 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 11 "github.com/mattermost/mattermost-server/model" 12 "github.com/mattermost/mattermost-server/store" 13 ) 14 15 func TestSystemStore(t *testing.T, ss store.Store) { 16 t.Run("", func(t *testing.T) { testSystemStore(t, ss) }) 17 t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, ss) }) 18 t.Run("PermanentDeleteByName", func(t *testing.T) { testSystemStorePermanentDeleteByName(t, ss) }) 19 } 20 21 func testSystemStore(t *testing.T, ss store.Store) { 22 system := &model.System{Name: model.NewId(), Value: "value"} 23 store.Must(ss.System().Save(system)) 24 25 result := <-ss.System().Get() 26 systems := result.Data.(model.StringMap) 27 28 if systems[system.Name] != system.Value { 29 t.Fatal() 30 } 31 32 system.Value = "value2" 33 store.Must(ss.System().Update(system)) 34 35 result2 := <-ss.System().Get() 36 systems2 := result2.Data.(model.StringMap) 37 38 if systems2[system.Name] != system.Value { 39 t.Fatal() 40 } 41 42 result3 := <-ss.System().GetByName(system.Name) 43 rsystem := result3.Data.(*model.System) 44 if rsystem.Value != system.Value { 45 t.Fatal() 46 } 47 } 48 49 func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) { 50 system := &model.System{Name: model.NewId(), Value: "value"} 51 52 if err := (<-ss.System().SaveOrUpdate(system)).Err; err != nil { 53 t.Fatal(err) 54 } 55 56 system.Value = "value2" 57 58 if r := <-ss.System().SaveOrUpdate(system); r.Err != nil { 59 t.Fatal(r.Err) 60 } 61 } 62 63 func testSystemStorePermanentDeleteByName(t *testing.T, ss store.Store) { 64 s1 := &model.System{Name: model.NewId(), Value: "value"} 65 s2 := &model.System{Name: model.NewId(), Value: "value"} 66 67 store.Must(ss.System().Save(s1)) 68 store.Must(ss.System().Save(s2)) 69 70 res1 := <-ss.System().GetByName(s1.Name) 71 assert.Nil(t, res1.Err) 72 73 res2 := <-ss.System().GetByName(s2.Name) 74 assert.Nil(t, res2.Err) 75 76 res3 := <-ss.System().PermanentDeleteByName(s1.Name) 77 assert.Nil(t, res3.Err) 78 79 res4 := <-ss.System().GetByName(s1.Name) 80 assert.NotNil(t, res4.Err) 81 82 res5 := <-ss.System().GetByName(s2.Name) 83 assert.Nil(t, res5.Err) 84 85 res6 := <-ss.System().PermanentDeleteByName(s2.Name) 86 assert.Nil(t, res6.Err) 87 88 res7 := <-ss.System().GetByName(s1.Name) 89 assert.NotNil(t, res7.Err) 90 91 res8 := <-ss.System().GetByName(s2.Name) 92 assert.NotNil(t, res8.Err) 93 94 }