126 lines
2.0 KiB
Go
126 lines
2.0 KiB
Go
package tests
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"xorm.io/xorm"
|
|
)
|
|
|
|
type VersionS struct {
|
|
Id int64
|
|
Name string
|
|
Ver int `xorm:"version"`
|
|
Created time.Time `xorm:"created"`
|
|
}
|
|
|
|
func testVersion(engine *xorm.Engine, t *testing.T) {
|
|
testVersion1(engine, t)
|
|
testVersion2(engine, t)
|
|
}
|
|
|
|
func testVersion1(engine *xorm.Engine, t *testing.T) {
|
|
err := engine.DropTables(new(VersionS))
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
err = engine.CreateTables(new(VersionS))
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
ver := &VersionS{Name: "sfsfdsfds"}
|
|
_, err = engine.Insert(ver)
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
fmt.Println(ver)
|
|
if ver.Ver != 1 {
|
|
err = errors.New("insert error")
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
newVer := new(VersionS)
|
|
has, err := engine.ID(ver.Id).Get(newVer)
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
if !has {
|
|
t.Error(errors.New(fmt.Sprintf("no version id is %v", ver.Id)))
|
|
panic(err)
|
|
}
|
|
fmt.Println(newVer)
|
|
if newVer.Ver != 1 {
|
|
err = errors.New("insert error")
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
newVer.Name = "-------"
|
|
_, err = engine.ID(ver.Id).Update(newVer)
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
if newVer.Ver != 2 {
|
|
err = errors.New("update should set version back to struct")
|
|
t.Error(err)
|
|
}
|
|
|
|
newVer = new(VersionS)
|
|
has, err = engine.ID(ver.Id).Get(newVer)
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
fmt.Println(newVer)
|
|
if newVer.Ver != 2 {
|
|
err = errors.New("insert error")
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func testVersion2(engine *xorm.Engine, t *testing.T) {
|
|
err := engine.DropTables(new(VersionS))
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
err = engine.CreateTables(new(VersionS))
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
var vers = []VersionS{
|
|
{Name: "sfsfdsfds"},
|
|
{Name: "xxxxx"},
|
|
}
|
|
_, err = engine.Insert(vers)
|
|
if err != nil {
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println(vers)
|
|
|
|
for _, v := range vers {
|
|
if v.Ver != 1 {
|
|
err := errors.New("version should be 1")
|
|
t.Error(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
}
|