| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- package dao
- import (
- "fmt"
- "go-template/business/model"
- "go-template/business/util"
- "testing"
- "time"
- "gitea.ckfah.com/cjjy/gocommon/pkg/common"
- "gitea.ckfah.com/cjjy/gocommon/pkg/database/db"
- )
- // make test test_func=Test_reportPeccancyDao_NoSession test_pkg=./business/dao
- func Test_reportPeccancyDao_NoSession(t *testing.T) {
- var (
- searchId uint64 = 0
- userId uint64 = 10086
- userName = "init_name"
- updateName = "update_name"
- )
- context := util.MockContext()
- // 插入
- t.Run("插入和查询 id", func(t *testing.T) {
- session := db.NewMasterSession(context)
- t.Logf("保存数据,user_id: %d, user_name: %s", userId, userName)
- saveData := model.ReportPeccancy{
- UserID: userId,
- UserName: userName,
- DiscoveryTime: time.Now(),
- OperateTime: time.Now(),
- StartCycleTime: time.Now(),
- EndCycleTime: time.Now(),
- }
- effectRow, err := NewReportPeccancyDao().SaveOne(context, session, &saveData)
- if err != nil {
- t.Fatal(err)
- }
- if effectRow == 0 {
- t.Fatal("未插入到数据库中!!")
- }
- t.Logf("save success , save_data_id: %d, effect_row: %d", saveData.ID, effectRow)
- searchId = saveData.ID
- })
- // 查询(本地环境没有主从)
- t.Run(fmt.Sprintf("查询 id %d", searchId), func(t *testing.T) {
- data, err := NewReportPeccancyDao().GetById(context, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if data == nil {
- t.Fatal("数据库中未找到")
- }
- t.Logf("查询成功,id: %d, user_id: %d, user_name: %s", data.ID, data.UserID, data.UserName)
- })
- // 查询分页
- t.Run(fmt.Sprintf("查询 id %d user_id %d", searchId, userId), func(t *testing.T) {
- list, err := NewReportPeccancyDao().GetByUserId(context, userId, common.PageRequest{}.GetPaginator())
- if err != nil {
- t.Fatal(err)
- }
- if list == nil {
- t.Fatal("分页查询失败,列表为空不正确")
- }
- t.Logf("查询分页成功, len list: %d", len(list))
- count, err := NewReportPeccancyDao().GetCountByUserId(context, userId)
- if err != nil {
- t.Fatal(err)
- }
- if count == 0 {
- t.Fatal("分页查询失败,总量不能为0")
- }
- t.Logf("查询分页成功, count: %d", count)
- })
- // 更新
- t.Run(fmt.Sprintf("更新 id %d", searchId), func(t *testing.T) {
- session := db.NewMasterSession(context)
- effectRow, err := NewReportPeccancyDao().UpdateById(context, session, searchId, map[string]interface{}{"user_name": updateName})
- if err != nil {
- t.Fatal(err)
- }
- if effectRow == 0 {
- t.Fatal("更新失败!")
- }
- t.Logf("更新成功, effectRow: %d", effectRow)
- data, err := NewReportPeccancyDao().GetById(context, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if data == nil {
- t.Fatal("更新失败,未查询到数据!")
- }
- if data.UserName == updateName {
- t.Logf("更新成功,username 一致!")
- } else {
- t.Fatal("更新失败,username 不一致")
- }
- })
- // 删除
- t.Run(fmt.Sprintf("删除 id %d", searchId), func(t *testing.T) {
- session := db.NewMasterSession(context)
- effectRow, err := NewReportPeccancyDao().DeleteById(context, session, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if effectRow == 0 {
- t.Fatal("删除失败")
- }
- t.Logf("删除成功, effectRow: %d", effectRow)
- data, err := NewReportPeccancyDao().GetById(context, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if data == nil {
- t.Logf("删除成功,未查询到数据!")
- }
- })
- }
- // make test test_func=Test_reportPeccancyDao_WithSession test_pkg=./business/dao
- func Test_reportPeccancyDao_WithSession(t *testing.T) {
- var (
- searchId uint64 = 0
- userId uint64 = 10010
- userName = "init_name"
- updateName = "update_name"
- rollbackName = "rollback_name"
- )
- context := util.MockContext()
- // 插入
- t.Run("插入和查询 id", func(t *testing.T) {
- session := db.NewMasterSession(context)
- session.Begin()
- defer session.Close()
- t.Logf("保存数据,user_id: %d, user_name: %s", userId, userName)
- saveData := model.ReportPeccancy{
- UserID: userId,
- UserName: userName,
- DiscoveryTime: time.Now(),
- OperateTime: time.Now(),
- StartCycleTime: time.Now(),
- EndCycleTime: time.Now(),
- }
- effectRow, err := NewReportPeccancyDao().SaveOne(context, session, &saveData)
- if err != nil {
- t.Fatal(err)
- }
- if effectRow == 0 {
- t.Fatal("未插入到数据库中!!")
- }
- session.Commit()
- t.Logf("save success , save_data_id: %d, effect_row: %d", saveData.ID, effectRow)
- searchId = saveData.ID
- })
- // 查询(本地环境没有主从)
- t.Run(fmt.Sprintf("查询 id %d", searchId), func(t *testing.T) {
- data, err := NewReportPeccancyDao().GetById(context, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if data == nil {
- t.Fatal("数据库中未找到")
- }
- t.Logf("查询成功,id: %d, user_id: %d, user_name: %s", data.ID, data.UserID, data.UserName)
- })
- // 查询分页
- t.Run(fmt.Sprintf("查询 id %d user_id %d", searchId, userId), func(t *testing.T) {
- list, err := NewReportPeccancyDao().GetByUserId(context, userId, common.PageRequest{}.GetPaginator())
- if err != nil {
- t.Fatal(err)
- }
- if list == nil {
- t.Fatal("分页查询失败,列表为空不正确")
- }
- t.Logf("查询分页成功, len list: %d", len(list))
- count, err := NewReportPeccancyDao().GetCountByUserId(context, userId)
- if err != nil {
- t.Fatal(err)
- }
- if count == 0 {
- t.Fatal("分页查询失败,总量不能为0")
- }
- t.Logf("查询分页成功, count: %d", count)
- })
- // 更新回滚
- t.Run(fmt.Sprintf("更新回滚测试 id %d", searchId), func(t *testing.T) {
- // 更新,defer
- func() {
- session := db.NewMasterSession(context)
- session.Begin()
- defer session.Close()
- effectRow, err := NewReportPeccancyDao().UpdateById(context, session, searchId, map[string]interface{}{"user_name": rollbackName})
- if err != nil {
- t.Fatal(err)
- }
- if effectRow == 0 {
- t.Fatal("回滚失败!")
- }
- // 不用写rowback,返回出去自动回滚
- t.Logf("更新确认进行回滚, effectRow: %d", effectRow)
- }()
- data, err := NewReportPeccancyDao().GetById(context, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if data == nil {
- t.Fatal("回滚失败,未查询到数据!")
- }
- if data.UserName == userName {
- t.Logf("回滚成功,username和回滚前保持 一致!")
- } else {
- t.Fatal("回滚失败,username和回滚前不保持 一致!")
- }
- })
- // 更新
- t.Run(fmt.Sprintf("更新 id %d", searchId), func(t *testing.T) {
- // 更新,defer
- func() {
- session := db.NewMasterSession(context)
- session.Begin()
- defer session.Close()
- effectRow, err := NewReportPeccancyDao().UpdateById(context, session, searchId, map[string]interface{}{"user_name": updateName})
- if err != nil {
- t.Fatal(err)
- }
- if effectRow == 0 {
- t.Fatal("更新失败!")
- }
- t.Logf("更新成功, effectRow: %d", effectRow)
- session.Commit()
- }()
- data, err := NewReportPeccancyDao().GetById(context, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if data == nil {
- t.Fatal("更新失败,未查询到数据!")
- }
- if data.UserName == updateName {
- t.Logf("更新成功,username 一致!")
- } else {
- t.Fatal("更新失败,username 不一致")
- }
- })
- // 删除
- t.Run(fmt.Sprintf("删除 id %d", searchId), func(t *testing.T) {
- func() {
- session := db.NewMasterSession(context)
- session.Begin()
- defer session.Close()
- effectRow, err := NewReportPeccancyDao().DeleteById(context, session, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if effectRow == 0 {
- t.Fatal("删除失败")
- }
- session.Commit()
- t.Logf("删除成功, effectRow: %d", effectRow)
- }()
- data, err := NewReportPeccancyDao().GetById(context, searchId)
- if err != nil {
- t.Fatal(err)
- }
- if data == nil {
- t.Logf("删除成功,未查询到数据!")
- }
- })
- }
|