gf/contrib/drivers/dm/dm_z_unit_issue_test.go
2024-02-05 20:40:03 +08:00

74 lines
1.8 KiB
Go

// Copyright 2019 gf Author(https://github.com/gogf/gf). All Rights Reserved.
//
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file,
// You can obtain one at https://github.com/gogf/gf.
package dm_test
import (
"testing"
"time"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/test/gtest"
"github.com/gogf/gf/v2/text/gstr"
)
func Test_Issue2594(t *testing.T) {
table := "HANDLE_INFO"
array := gstr.SplitAndTrim(gtest.DataContent(`issue`, `2594`, `sql.sql`), ";")
for _, v := range array {
if _, err := db.Exec(ctx, v); err != nil {
gtest.Error(err)
}
}
defer dropTable(table)
type HandleValueMysql struct {
Index int64 `orm:"index"`
Type string `orm:"type"`
Data []byte `orm:"data"`
}
type HandleInfoMysql struct {
Id int `orm:"id,primary" json:"id"`
SubPrefix string `orm:"sub_prefix"`
Prefix string `orm:"prefix"`
HandleName string `orm:"handle_name"`
CreateTime time.Time `orm:"create_time"`
UpdateTime time.Time `orm:"update_time"`
Value []HandleValueMysql `orm:"value"`
}
gtest.C(t, func(t *gtest.T) {
var h1 = HandleInfoMysql{
SubPrefix: "p_",
Prefix: "m_",
HandleName: "name",
CreateTime: gtime.Now().FormatTo("Y-m-d H:i:s").Time,
UpdateTime: gtime.Now().FormatTo("Y-m-d H:i:s").Time,
Value: []HandleValueMysql{
{
Index: 10,
Type: "t1",
Data: []byte("abc"),
},
{
Index: 20,
Type: "t2",
Data: []byte("def"),
},
},
}
_, err := db.Model(table).OmitEmptyData().Insert(h1)
t.AssertNil(err)
var h2 HandleInfoMysql
err = db.Model(table).Scan(&h2)
t.AssertNil(err)
h1.Id = 1
t.Assert(h1, h2)
})
}