add more tests (#602)
This commit is contained in:
parent
244841c035
commit
36a9cdaa23
|
@ -200,3 +200,19 @@ func TestMetaInfo(t *testing.T) {
|
||||||
assert.EqualValues(t, "customtablename", tables[0].Name)
|
assert.EqualValues(t, "customtablename", tables[0].Name)
|
||||||
assert.EqualValues(t, "index_or_unique", tables[1].Name)
|
assert.EqualValues(t, "index_or_unique", tables[1].Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCharst(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
err := testEngine.DropTables("user_charset")
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = testEngine.Charset("utf8").Table("user_charset").CreateTable(&Userinfo{})
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,189 @@
|
||||||
|
// Copyright 2017 The Xorm Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package xorm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
type UserCU struct {
|
||||||
|
Id int64
|
||||||
|
Name string
|
||||||
|
Created time.Time `xorm:"created"`
|
||||||
|
Updated time.Time `xorm:"updated"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCreatedAndUpdated(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
u := new(UserCU)
|
||||||
|
err := testEngine.DropTables(u)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = testEngine.CreateTables(u)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
u.Name = "sss"
|
||||||
|
cnt, err := testEngine.Insert(u)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
if cnt != 1 {
|
||||||
|
err = errors.New("insert not returned 1")
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
u.Name = "xxx"
|
||||||
|
cnt, err = testEngine.Id(u.Id).Update(u)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
if cnt != 1 {
|
||||||
|
err = errors.New("update not returned 1")
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
u.Id = 0
|
||||||
|
u.Created = time.Now().Add(-time.Hour * 24 * 365)
|
||||||
|
u.Updated = u.Created
|
||||||
|
fmt.Println(u)
|
||||||
|
cnt, err = testEngine.NoAutoTime().Insert(u)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
if cnt != 1 {
|
||||||
|
err = errors.New("insert not returned 1")
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type StrangeName struct {
|
||||||
|
Id_t int64 `xorm:"pk autoincr"`
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStrangeName(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
err := testEngine.DropTables(new(StrangeName))
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = testEngine.CreateTables(new(StrangeName))
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = testEngine.Insert(&StrangeName{Name: "sfsfdsfds"})
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
beans := make([]StrangeName, 0)
|
||||||
|
err = testEngine.Find(&beans)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type CreatedUpdated struct {
|
||||||
|
Id int64
|
||||||
|
Name string
|
||||||
|
Value float64 `xorm:"numeric"`
|
||||||
|
Created time.Time `xorm:"created"`
|
||||||
|
Created2 time.Time `xorm:"created"`
|
||||||
|
Updated time.Time `xorm:"updated"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCreatedUpdated(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
err := testEngine.Sync(&CreatedUpdated{})
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
c := &CreatedUpdated{Name: "test"}
|
||||||
|
_, err = testEngine.Insert(c)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
c2 := new(CreatedUpdated)
|
||||||
|
has, err := testEngine.Id(c.Id).Get(c2)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !has {
|
||||||
|
panic(errors.New("no id"))
|
||||||
|
}
|
||||||
|
|
||||||
|
c2.Value -= 1
|
||||||
|
_, err = testEngine.Id(c2.Id).Update(c2)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Lowercase struct {
|
||||||
|
Id int64
|
||||||
|
Name string
|
||||||
|
ended int64 `xorm:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLowerCase(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
err := testEngine.Sync(&Lowercase{})
|
||||||
|
_, err = testEngine.Where("(id) > 0").Delete(&Lowercase{})
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
_, err = testEngine.Insert(&Lowercase{ended: 1})
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ls := make([]Lowercase, 0)
|
||||||
|
err = testEngine.Find(&ls)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(ls) != 1 {
|
||||||
|
err = errors.New("should be 1")
|
||||||
|
t.Error(err)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue