github.com/xzl8028/xenia-server@v0.0.0-20190809101854-18450a97da63/store/storetest/system_store.go (about) 1 // Copyright (c) 2015-present Xenia, 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 "github.com/stretchr/testify/require" 11 12 "github.com/xzl8028/xenia-server/model" 13 "github.com/xzl8028/xenia-server/store" 14 ) 15 16 func TestSystemStore(t *testing.T, ss store.Store) { 17 t.Run("", func(t *testing.T) { testSystemStore(t, ss) }) 18 t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, ss) }) 19 t.Run("PermanentDeleteByName", func(t *testing.T) { testSystemStorePermanentDeleteByName(t, ss) }) 20 } 21 22 func testSystemStore(t *testing.T, ss store.Store) { 23 system := &model.System{Name: model.NewId(), Value: "value"} 24 err := ss.System().Save(system) 25 require.Nil(t, err) 26 27 systems, _ := ss.System().Get() 28 29 require.Equal(t, system.Value, systems[system.Name]) 30 31 system.Value = "value2" 32 err = ss.System().Update(system) 33 require.Nil(t, err) 34 35 systems2, _ := ss.System().Get() 36 require.Equal(t, system.Value, systems2[system.Name]) 37 38 rsystem, _ := ss.System().GetByName(system.Name) 39 require.Equal(t, system.Value, rsystem.Value) 40 } 41 42 func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) { 43 system := &model.System{Name: model.NewId(), Value: "value"} 44 45 if err := ss.System().SaveOrUpdate(system); err != nil { 46 t.Fatal(err) 47 } 48 49 system.Value = "value2" 50 51 if err := ss.System().SaveOrUpdate(system); err != nil { 52 t.Fatal(err) 53 } 54 } 55 56 func testSystemStorePermanentDeleteByName(t *testing.T, ss store.Store) { 57 s1 := &model.System{Name: model.NewId(), Value: "value"} 58 s2 := &model.System{Name: model.NewId(), Value: "value"} 59 60 err := ss.System().Save(s1) 61 require.Nil(t, err) 62 err = ss.System().Save(s2) 63 require.Nil(t, err) 64 65 _, err = ss.System().GetByName(s1.Name) 66 assert.Nil(t, err) 67 68 _, err = ss.System().GetByName(s2.Name) 69 assert.Nil(t, err) 70 71 _, err = ss.System().PermanentDeleteByName(s1.Name) 72 assert.Nil(t, err) 73 74 _, err = ss.System().GetByName(s1.Name) 75 assert.NotNil(t, err) 76 77 _, err = ss.System().GetByName(s2.Name) 78 assert.Nil(t, err) 79 80 _, err = ss.System().PermanentDeleteByName(s2.Name) 81 assert.Nil(t, err) 82 83 _, err = ss.System().GetByName(s1.Name) 84 assert.NotNil(t, err) 85 86 _, err = ss.System().GetByName(s2.Name) 87 assert.NotNil(t, err) 88 }