Files
go-zero/tools/goctl/model/sql/example/model_test.go

165 lines
4.1 KiB
Go
Raw Normal View History

2020-08-16 23:28:01 +08:00
package example
// todo: In order to pass the go test on github,
// todo: the code is commented. If you need go test,
// todo: modify the configuration file and delete the comment and execute it.
//import (
// "flag"
// "fmt"
// "testing"
//
// "github.com/stretchr/testify/assert"
// "github.com/tal-tech/go-zero/core/conf"
// "github.com/tal-tech/go-zero/core/jsonx"
// "github.com/tal-tech/go-zero/core/logx"
// "github.com/tal-tech/go-zero/core/stores/redis"
// "github.com/tal-tech/go-zero/core/stores/sqlx"
// "github.com/tal-tech/go-zero/tools/goctl/model/sql/example/config"
// "github.com/tal-tech/go-zero/tools/goctl/model/sql/example/model"
//)
//
//var (
// userModel *model.UserModel
// courseModel *model.UserCourseModel
// // verify redis cache
// r *redis.Redis
//)
//var configFile = flag.String("f", "etc/config.json", "the config file")
//
//func TestMain(m *testing.M) {
// flag.Parse()
// var c config.Config
// conf.MustLoad(*configFile, &c)
//
// logx.MustSetup(c.LogConf)
// conn := sqlx.NewMysql(c.Mysql.DataSource)
// if conn == nil {
// return
// }
// userModel = model.NewUserModel(conn, c.CacheRedis, c.Mysql.Table.User)
// courseModel = model.NewUserCourseModel(conn, c.Mysql.Table.Course)
// r = redis.NewRedis(c.Redis.Host, c.Redis.Type, c.Redis.Pass)
// if userModel == nil || courseModel == nil || r == nil {
// return
// }
// m.Run()
//}
//
//// cache model
//func TestUser(t *testing.T) {
// var user model.User
// user.Name = "test"
// user.Password = "123456"
// user.Mobile = "136****0001"
// user.Gender = "男"
// user.Nickname = "Keson"
// insert, err := userModel.Insert(user)
// assert.Nil(t, err)
// id, err := insert.LastInsertId()
// assert.Nil(t, err)
//
// // select
// ret, err := userModel.FindOneByName("test")
// assert.Nil(t, err)
// assert.Equal(t, user.Mobile, ret.Mobile)
//
// // should cache
// // expected primary key
// var redisId int64
// err = get(&redisId, "cache#User#name#test")
// assert.Nil(t, err)
// assert.Equal(t, ret.Id, redisId)
//
// //expected user from cache
// var redisData model.User
// err = get(&redisData, fmt.Sprintf("cache#User#id#%v", redisId))
// assert.Nil(t, err)
// assert.Equal(t, redisData.Nickname, user.Nickname)
//
// // update
// ret.Nickname = "Keson after"
// err = userModel.Update(*ret)
// assert.Nil(t, err)
// // expected cache delete
// exist, err := r.Exists(fmt.Sprintf("cache#User#id#%v", ret.Id))
// assert.Nil(t, err)
// assert.Equal(t, false, exist)
//
// // select
// ret, err = userModel.FindOne(id)
// assert.Nil(t, err)
// assert.Equal(t, "Keson after", ret.Nickname)
//
// // delete
// err = userModel.Delete(ret.Id)
// assert.Nil(t, err)
// exist, err = r.Exists(fmt.Sprintf("cache#User#id#%v", ret.Id))
// assert.Nil(t, err)
// assert.Equal(t, false, exist)
//
// // verify
// _, err = userModel.FindOne(id)
// assert.Equal(t, model.ErrNotFound, err)
//
//}
//
//// no cache model
//func TestCourse(t *testing.T) {
// // new user
// insert, err := userModel.Insert(model.User{
// Name: "courseUser",
// Password: "123456",
// Mobile: "136****1111",
// Gender: "男",
// Nickname: "Keson",
// })
// assert.Nil(t, err)
// id, err := insert.LastInsertId()
// assert.Nil(t, err)
//
// var course model.UserCourse
// course.Id = id
// course.CourseName = "Java"
//
// courseInsert, err := courseModel.Insert(course)
// assert.Nil(t, err)
// courseId, err := courseInsert.LastInsertId()
// assert.Nil(t, err)
//
// // select
// ret, err := courseModel.FindOne(courseId)
// assert.Nil(t, err)
// assert.Equal(t, course.CourseName, ret.CourseName)
//
// // update
// ret.CourseName = "Golang"
// err = courseModel.Update(*ret)
// assert.Nil(t, err)
//
// // select
// ret, err = courseModel.FindOne(courseId)
// assert.Nil(t, err)
// assert.Equal(t, "Golang", ret.CourseName)
//
// // delete
// err = courseModel.Delete(ret.Id)
// assert.Nil(t, err)
//
// // verify
// _, err = courseModel.FindOne(courseId)
// assert.Equal(t, model.ErrNotFound, err)
//
// // clean user
// err = userModel.Delete(id)
// assert.Nil(t, err)
//}
//
//func get(data interface{}, key string) error {
// v, err := r.Get(key)
// if err != nil {
// return err
// }
// return jsonx.Unmarshal([]byte(v), data)
//}