youtu_ecpm/dao/query/gen_test.go

122 lines
2.6 KiB
Go
Raw Permalink Normal View History

2025-01-14 13:09:25 +08:00
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
package query
import (
"context"
"fmt"
"reflect"
"sync"
"testing"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type Input struct {
Args []interface{}
}
type Expectation struct {
Ret []interface{}
}
type TestCase struct {
Input
Expectation
}
const _gen_test_db_name = "gen_test.db"
var _gen_test_db *gorm.DB
var _gen_test_once sync.Once
func init() {
InitializeDB()
_gen_test_db.AutoMigrate(&_another{})
}
func InitializeDB() {
_gen_test_once.Do(func() {
var err error
_gen_test_db, err = gorm.Open(sqlite.Open(_gen_test_db_name), &gorm.Config{})
if err != nil {
panic(fmt.Errorf("open sqlite %q fail: %w", _gen_test_db_name, err))
}
})
}
func assert(t *testing.T, methodName string, res, exp interface{}) {
if !reflect.DeepEqual(res, exp) {
t.Errorf("%v() gotResult = %v, want %v", methodName, res, exp)
}
}
type _another struct {
ID uint64 `gorm:"primaryKey"`
}
func (*_another) TableName() string { return "another_for_unit_test" }
func Test_Available(t *testing.T) {
if !Use(_gen_test_db).Available() {
t.Errorf("query.Available() == false")
}
}
func Test_WithContext(t *testing.T) {
query := Use(_gen_test_db)
if !query.Available() {
t.Errorf("query Use(_gen_test_db) fail: query.Available() == false")
}
type Content string
var key, value Content = "gen_tag", "unit_test"
qCtx := query.WithContext(context.WithValue(context.Background(), key, value))
for _, ctx := range []context.Context{
2025-01-18 17:56:36 +08:00
qCtx.AppAccount.UnderlyingDB().Statement.Context,
qCtx.AppUserInfo.UnderlyingDB().Statement.Context,
qCtx.DouyinEcpmConfig.UnderlyingDB().Statement.Context,
qCtx.GameScore.UnderlyingDB().Statement.Context,
2025-01-14 13:09:25 +08:00
} {
if v := ctx.Value(key); v != value {
t.Errorf("get value from context fail, expect %q, got %q", value, v)
}
}
}
func Test_Transaction(t *testing.T) {
query := Use(_gen_test_db)
if !query.Available() {
t.Errorf("query Use(_gen_test_db) fail: query.Available() == false")
}
err := query.Transaction(func(tx *Query) error { return nil })
if err != nil {
t.Errorf("query.Transaction execute fail: %s", err)
}
tx := query.Begin()
err = tx.SavePoint("point")
if err != nil {
t.Errorf("query tx SavePoint fail: %s", err)
}
err = tx.RollbackTo("point")
if err != nil {
t.Errorf("query tx RollbackTo fail: %s", err)
}
err = tx.Commit()
if err != nil {
t.Errorf("query tx Commit fail: %s", err)
}
err = query.Begin().Rollback()
if err != nil {
t.Errorf("query tx Rollback fail: %s", err)
}
}