code.gitea.io/gitea@v1.22.3/modules/system/appstate_test.go (about) 1 // Copyright 2021 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package system 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/models/db" 10 "code.gitea.io/gitea/models/unittest" 11 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestMain(m *testing.M) { 16 unittest.MainTest(m, &unittest.TestOptions{ 17 FixtureFiles: []string{""}, // load nothing 18 }) 19 } 20 21 type testItem1 struct { 22 Val1 string 23 Val2 int 24 } 25 26 func (*testItem1) Name() string { 27 return "test-item1" 28 } 29 30 type testItem2 struct { 31 K string 32 } 33 34 func (*testItem2) Name() string { 35 return "test-item2" 36 } 37 38 func TestAppStateDB(t *testing.T) { 39 assert.NoError(t, unittest.PrepareTestDatabase()) 40 41 as := &DBStore{} 42 43 item1 := new(testItem1) 44 assert.NoError(t, as.Get(db.DefaultContext, item1)) 45 assert.Equal(t, "", item1.Val1) 46 assert.EqualValues(t, 0, item1.Val2) 47 48 item1 = new(testItem1) 49 item1.Val1 = "a" 50 item1.Val2 = 2 51 assert.NoError(t, as.Set(db.DefaultContext, item1)) 52 53 item2 := new(testItem2) 54 item2.K = "V" 55 assert.NoError(t, as.Set(db.DefaultContext, item2)) 56 57 item1 = new(testItem1) 58 assert.NoError(t, as.Get(db.DefaultContext, item1)) 59 assert.Equal(t, "a", item1.Val1) 60 assert.EqualValues(t, 2, item1.Val2) 61 62 item2 = new(testItem2) 63 assert.NoError(t, as.Get(db.DefaultContext, item2)) 64 assert.Equal(t, "V", item2.K) 65 }