You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
2.9 KiB
120 lines
2.9 KiB
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) |
|
})) |
|
}
|
|
|