bilibili-backup/app/service/main/member/dao/block/mysql_test.go
2019-04-22 02:59:20 +00:00

151 lines
4.0 KiB
Go

package block
import (
"context"
"testing"
"time"
model "go-common/app/service/main/member/model/block"
"github.com/smartystreets/goconvey/convey"
)
func TestDaohistoryIdx(t *testing.T) {
convey.Convey("historyIdx", t, func(ctx convey.C) {
var (
mid = int64(46333)
)
ctx.Convey("When everything right", func(ctx convey.C) {
shard := historyIdx(mid)
ctx.Convey("Then shard should equal mid % 10.", func(ctx convey.C) {
ctx.So(shard, convey.ShouldEqual, 3)
})
})
})
}
func TestDaoUser(t *testing.T) {
convey.Convey("User", t, func(ctx convey.C) {
var (
c = context.Background()
mid = int64(46333)
)
ctx.Convey("When everything right", func(ctx convey.C) {
user, err := d.User(c, mid)
ctx.Convey("Then err should be nil.user should not be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(user, convey.ShouldNotBeNil)
ctx.So(user.MID, convey.ShouldEqual, mid)
})
})
})
}
func TestDaoTxInsertHistory(t *testing.T) {
convey.Convey("TxInsertHistory", t, func(ctx convey.C) {
var (
c = context.Background()
tx, _ = d.db.Begin(c)
his = &model.DBHistory{
MID: 46333,
AdminID: 2333,
AdminName: "ut",
Source: model.BlockSourceBlackHouse,
Area: model.BlockAreaAlbum,
Reason: "ut reason",
Comment: "ut comment",
Action: model.BlockActionLimit,
StartTime: time.Now(),
Duration: 60,
Notify: false,
CTime: time.Now(),
MTime: time.Now(),
}
)
ctx.Convey("When everything right", func(ctx convey.C) {
err := d.TxInsertHistory(c, tx, his)
ctx.So(err, convey.ShouldBeNil)
err = tx.Commit()
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.Convey("When get UserLastHistory", func(ctx convey.C) {
his2, err := d.UserLastHistory(c, his.MID)
ctx.Convey("Then err should be nil.his2 should resemble his.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(his2.MID, convey.ShouldEqual, his.MID)
ctx.So(his2.Action, convey.ShouldEqual, his.Action)
ctx.So(his2.StartTime.Unix(), convey.ShouldEqual, his.StartTime.Unix())
ctx.So(his2.Duration, convey.ShouldEqual, his.Duration)
})
})
})
})
})
}
func TestDaoTxUpdateUser(t *testing.T) {
var (
c = context.Background()
tx, _ = d.db.Begin(c)
mid = int64(46333)
status = model.BlockStatusFalse
)
convey.Convey("TxUpdateUser", t, func(ctx convey.C) {
ctx.Convey("When everything right", func(ctx convey.C) {
err := d.TxUpdateUser(c, tx, mid, status)
ctx.So(err, convey.ShouldBeNil)
err = tx.Commit()
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
})
}
func TestDaoUserStatusMapWithMIDs(t *testing.T) {
convey.Convey("UserStatusMapWithMIDs", t, func(ctx convey.C) {
var (
c = context.Background()
status = model.BlockStatusFalse
mids = []int64{46333, 2, 35858}
)
ctx.Convey("When everything right", func(ctx convey.C) {
midMap, err := d.UserStatusMapWithMIDs(c, status, mids)
ctx.Convey("Then err should be nil.midMap should not be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(midMap, convey.ShouldNotBeNil)
})
})
})
}
func TestDaoUpdateAddBlockCount(t *testing.T) {
convey.Convey("UpdateAddBlockCount", t, func(ctx convey.C) {
var (
c = context.TODO()
mid = int64(46333)
)
ctx.Convey("When everything right", func(ctx convey.C) {
err := d.UpdateAddBlockCount(c, mid)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
})
}
func TestUserDetails(t *testing.T) {
convey.Convey("get user details", t, func(ctx convey.C) {
var (
c = context.Background()
mid = int64(46333)
)
ctx.Convey("When get user details from db", func(ctx convey.C) {
_, err := d.UserDetails(c, []int64{mid})
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
})
}