121 lines
2.9 KiB
Go
121 lines
2.9 KiB
Go
|
package dao
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
"go-common/app/admin/main/reply/model"
|
||
|
xtime "go-common/library/time"
|
||
|
|
||
|
. "github.com/smartystreets/goconvey/convey"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
mid int64 = 1
|
||
|
nowTs = time.Now().Unix()
|
||
|
lastID int64
|
||
|
lastID2 int64
|
||
|
)
|
||
|
|
||
|
func Test_AddNotice(t *testing.T) {
|
||
|
c := context.Background()
|
||
|
nt := model.Notice{
|
||
|
Plat: model.PlatAndroid,
|
||
|
Condition: model.ConditionGT,
|
||
|
Build: 1113,
|
||
|
Title: "测试",
|
||
|
Status: model.StatusOffline,
|
||
|
Content: "测试内容",
|
||
|
Link: "http://www.bilibili.com",
|
||
|
StartTime: xtime.Time(nowTs),
|
||
|
EndTime: xtime.Time(nowTs + 10*3600),
|
||
|
ClientType: "android",
|
||
|
}
|
||
|
nt2 := model.Notice{
|
||
|
Plat: model.PlatAndroid,
|
||
|
Condition: model.ConditionLT,
|
||
|
Build: 2233,
|
||
|
Title: "测试2",
|
||
|
Status: model.StatusOffline,
|
||
|
Content: "测试内容2",
|
||
|
Link: "http://www.bilibili.com",
|
||
|
StartTime: xtime.Time(nowTs),
|
||
|
EndTime: xtime.Time(nowTs + 10*3600),
|
||
|
ClientType: "",
|
||
|
}
|
||
|
Convey("add notice", t, WithDao(func(d *Dao) {
|
||
|
var err error
|
||
|
lastID, err = d.CreateNotice(c, &nt)
|
||
|
So(err, ShouldBeNil)
|
||
|
So(lastID, ShouldBeGreaterThan, 0)
|
||
|
|
||
|
lastID2, err = d.CreateNotice(c, &nt2)
|
||
|
So(err, ShouldBeNil)
|
||
|
So(lastID2, ShouldBeGreaterThan, 0)
|
||
|
|
||
|
}))
|
||
|
}
|
||
|
|
||
|
func Test_ListNotice(t *testing.T) {
|
||
|
c := context.Background()
|
||
|
Convey("list notice", t, WithDao(func(d *Dao) {
|
||
|
|
||
|
nts, err := d.ListNotice(c, 1, 100)
|
||
|
So(err, ShouldBeNil)
|
||
|
So(len(nts), ShouldBeGreaterThan, 0)
|
||
|
So(nts[0].StartTime.Time().Unix(), ShouldBeGreaterThanOrEqualTo, nowTs)
|
||
|
|
||
|
count, err := d.CountNotice(c)
|
||
|
So(err, ShouldBeNil)
|
||
|
So(count, ShouldBeGreaterThan, 1)
|
||
|
|
||
|
}))
|
||
|
}
|
||
|
|
||
|
func Test_UpdateNotice(t *testing.T) {
|
||
|
c := context.Background()
|
||
|
Convey("update notice", t, WithDao(func(d *Dao) {
|
||
|
data, err := d.Notice(c, uint32(lastID2))
|
||
|
So(err, ShouldBeNil)
|
||
|
So(data.Title, ShouldEqual, "测试2")
|
||
|
|
||
|
data.ID = uint32(lastID2)
|
||
|
data.Title = "测试3"
|
||
|
rows, err := d.UpdateNotice(c, data)
|
||
|
So(err, ShouldBeNil)
|
||
|
So(rows, ShouldBeGreaterThan, 0)
|
||
|
nt2, err := d.Notice(c, uint32(lastID2))
|
||
|
So(err, ShouldBeNil)
|
||
|
So(nt2.Title, ShouldEqual, "测试3")
|
||
|
|
||
|
rows, err = d.UpdateNoticeStatus(c, model.StatusOnline, uint32(lastID))
|
||
|
So(err, ShouldBeNil)
|
||
|
So(rows, ShouldBeGreaterThan, 0)
|
||
|
|
||
|
nts, err := d.RangeNotice(c, model.PlatAndroid, xtime.Time(nowTs)-3600, xtime.Time(nowTs+5*3600))
|
||
|
So(err, ShouldBeNil)
|
||
|
So(len(nts), ShouldBeGreaterThan, 0)
|
||
|
var isFound bool
|
||
|
for _, data = range nts {
|
||
|
if data.ID == uint32(lastID) {
|
||
|
isFound = true
|
||
|
}
|
||
|
}
|
||
|
So(isFound, ShouldBeTrue)
|
||
|
|
||
|
}))
|
||
|
}
|
||
|
|
||
|
func Test_DeleteNotice(t *testing.T) {
|
||
|
c := context.Background()
|
||
|
Convey("delete notice", t, WithDao(func(d *Dao) {
|
||
|
rows, err := d.DeleteNotice(c, uint32(lastID))
|
||
|
So(err, ShouldBeNil)
|
||
|
So(rows, ShouldBeGreaterThan, 0)
|
||
|
rows, err = d.DeleteNotice(c, uint32(lastID2))
|
||
|
So(err, ShouldBeNil)
|
||
|
So(rows, ShouldBeGreaterThan, 0)
|
||
|
}))
|
||
|
}
|