2021-10-21 17:22:43 +08:00
// Copyright 2021 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2021-10-21 17:22:43 +08:00
2022-10-17 07:29:26 +08:00
package system
2021-10-21 17:22:43 +08:00
import (
"testing"
2023-10-15 23:46:06 +08:00
"code.gitea.io/gitea/models/db"
2021-11-12 22:36:47 +08:00
"code.gitea.io/gitea/models/unittest"
2021-10-21 17:22:43 +08:00
"github.com/stretchr/testify/assert"
)
func TestMain ( m * testing . M ) {
2022-04-14 21:58:21 +08:00
unittest . MainTest ( m , & unittest . TestOptions {
2023-09-28 09:38:53 +08:00
FixtureFiles : [ ] string { "" } , // load nothing
2022-04-14 21:58:21 +08:00
} )
2021-10-21 17:22:43 +08:00
}
type testItem1 struct {
Val1 string
Val2 int
}
func ( * testItem1 ) Name ( ) string {
return "test-item1"
}
type testItem2 struct {
K string
}
func ( * testItem2 ) Name ( ) string {
return "test-item2"
}
func TestAppStateDB ( t * testing . T ) {
2021-11-12 22:36:47 +08:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2021-10-21 17:22:43 +08:00
as := & DBStore { }
item1 := new ( testItem1 )
2023-10-15 23:46:06 +08:00
assert . NoError ( t , as . Get ( db . DefaultContext , item1 ) )
2021-10-21 17:22:43 +08:00
assert . Equal ( t , "" , item1 . Val1 )
assert . EqualValues ( t , 0 , item1 . Val2 )
item1 = new ( testItem1 )
item1 . Val1 = "a"
item1 . Val2 = 2
2023-10-15 23:46:06 +08:00
assert . NoError ( t , as . Set ( db . DefaultContext , item1 ) )
2021-10-21 17:22:43 +08:00
item2 := new ( testItem2 )
item2 . K = "V"
2023-10-15 23:46:06 +08:00
assert . NoError ( t , as . Set ( db . DefaultContext , item2 ) )
2021-10-21 17:22:43 +08:00
item1 = new ( testItem1 )
2023-10-15 23:46:06 +08:00
assert . NoError ( t , as . Get ( db . DefaultContext , item1 ) )
2021-10-21 17:22:43 +08:00
assert . Equal ( t , "a" , item1 . Val1 )
assert . EqualValues ( t , 2 , item1 . Val2 )
item2 = new ( testItem2 )
2023-10-15 23:46:06 +08:00
assert . NoError ( t , as . Get ( db . DefaultContext , item2 ) )
2021-10-21 17:22:43 +08:00
assert . Equal ( t , "V" , item2 . K )
}