191 lines
3.5 KiB
Go
191 lines
3.5 KiB
Go
|
package xorm_test
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
_ "github.com/Go-SQL-Driver/MySQL"
|
||
|
//_ "github.com/ziutek/mymysql/godrv"
|
||
|
//_ "github.com/mattn/go-sqlite3"
|
||
|
"testing"
|
||
|
"time"
|
||
|
"xorm"
|
||
|
)
|
||
|
|
||
|
/*
|
||
|
CREATE TABLE `userinfo` (
|
||
|
`uid` INT(10) NULL AUTO_INCREMENT,
|
||
|
`username` VARCHAR(64) NULL,
|
||
|
`departname` VARCHAR(64) NULL,
|
||
|
`created` DATE NULL,
|
||
|
PRIMARY KEY (`uid`)
|
||
|
);
|
||
|
CREATE TABLE `userdeatail` (
|
||
|
`uid` INT(10) NULL,
|
||
|
`intro` TEXT NULL,
|
||
|
`profile` TEXT NULL,
|
||
|
PRIMARY KEY (`uid`)
|
||
|
);
|
||
|
*/
|
||
|
|
||
|
type Userinfo struct {
|
||
|
Uid int `xorm:"id pk not null autoincr"`
|
||
|
Username string
|
||
|
Departname string
|
||
|
Alias string `xorm:"-"`
|
||
|
Created time.Time
|
||
|
}
|
||
|
|
||
|
var engine xorm.Engine
|
||
|
|
||
|
func TestCreateEngine(t *testing.T) {
|
||
|
engine = xorm.Create("mysql://root:123@localhost/test")
|
||
|
//engine = orm.Create("mymysql://root:123@localhost/test")
|
||
|
//engine = orm.Create("sqlite:///test.db")
|
||
|
engine.ShowSQL = true
|
||
|
}
|
||
|
|
||
|
func TestDirectCreateTable(t *testing.T) {
|
||
|
err := engine.CreateTables(&Userinfo{})
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestMapper(t *testing.T) {
|
||
|
err := engine.UnMap(&Userinfo{})
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
|
||
|
err = engine.Map(&Userinfo{})
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
|
||
|
err = engine.DropAll()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
|
||
|
err = engine.CreateAll()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestInsert(t *testing.T) {
|
||
|
user := Userinfo{1, "xiaolunwen", "dev", "lunny", time.Now()}
|
||
|
_, err := engine.Insert(&user)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestInsertAutoIncr(t *testing.T) {
|
||
|
// auto increment insert
|
||
|
user := Userinfo{Username: "xiaolunwen", Departname: "dev", Alias: "lunny", Created: time.Now()}
|
||
|
_, err := engine.Insert(&user)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestInsertMulti(t *testing.T) {
|
||
|
user1 := Userinfo{Username: "xlw", Departname: "dev", Alias: "lunny2", Created: time.Now()}
|
||
|
user2 := Userinfo{Username: "xlw2", Departname: "dev", Alias: "lunny3", Created: time.Now()}
|
||
|
_, err := engine.Insert(&user1, &user2)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestUpdate(t *testing.T) {
|
||
|
// update by id
|
||
|
user := Userinfo{Uid: 1, Username: "xxx"}
|
||
|
_, err := engine.Update(&user)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestDelete(t *testing.T) {
|
||
|
user := Userinfo{Uid: 1}
|
||
|
_, err := engine.Delete(&user)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestGet(t *testing.T) {
|
||
|
user := Userinfo{Uid: 2}
|
||
|
|
||
|
err := engine.Get(&user)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
fmt.Println(user)
|
||
|
}
|
||
|
|
||
|
func TestFind(t *testing.T) {
|
||
|
users := make([]Userinfo, 0)
|
||
|
|
||
|
err := engine.Find(&users)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
fmt.Println(users)
|
||
|
}
|
||
|
|
||
|
func TestCount(t *testing.T) {
|
||
|
user := Userinfo{}
|
||
|
total, err := engine.Count(&user)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
fmt.Printf("Total %d records!!!", total)
|
||
|
}
|
||
|
|
||
|
func TestWhere(t *testing.T) {
|
||
|
users := make([]Userinfo, 0)
|
||
|
session, err := engine.MakeSession()
|
||
|
defer session.Close()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
err = session.Where("id > ?", 2).Find(&users)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
fmt.Println(users)
|
||
|
}
|
||
|
|
||
|
func TestLimit(t *testing.T) {
|
||
|
users := make([]Userinfo, 0)
|
||
|
session, err := engine.MakeSession()
|
||
|
defer session.Close()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
err = session.Limit(2, 1).Find(&users)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
fmt.Println(users)
|
||
|
}
|
||
|
|
||
|
func TestOrder(t *testing.T) {
|
||
|
users := make([]Userinfo, 0)
|
||
|
session, err := engine.MakeSession()
|
||
|
defer session.Close()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
err = session.OrderBy("id desc").Find(&users)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
fmt.Println(users)
|
||
|
}
|
||
|
|
||
|
func TestTransaction(*testing.T) {
|
||
|
}
|