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  }