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