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.
84 lines
2.4 KiB
84 lines
2.4 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"encoding/json" |
|
"testing" |
|
"time" |
|
|
|
"go-common/app/interface/main/push-archive/model" |
|
|
|
"github.com/smartystreets/goconvey/convey" |
|
) |
|
|
|
func Test_upperlimit(t *testing.T) { |
|
upper := int64(998) |
|
d.UpperLimitExpire = 1 // 1s |
|
exist, err := d.ExistUpperLimitCache(context.TODO(), upper) |
|
convey.Convey("upper主推送频率限制,没存储过", t, func() { |
|
convey.So(err, convey.ShouldBeNil) |
|
convey.So(exist, convey.ShouldEqual, false) |
|
}) |
|
|
|
err = d.AddUpperLimitCache(context.TODO(), upper) |
|
convey.Convey("upper主推送频率限制,添加推送1次,再次获取已存在, 失效后不存在", t, func() { |
|
convey.So(err, convey.ShouldBeNil) |
|
exist, err = d.ExistUpperLimitCache(context.TODO(), upper) |
|
convey.So(err, convey.ShouldBeNil) |
|
convey.So(exist, convey.ShouldEqual, true) |
|
time.Sleep(2 * time.Second) |
|
exist, err = d.ExistUpperLimitCache(context.TODO(), upper) |
|
convey.So(err, convey.ShouldBeNil) |
|
convey.So(exist, convey.ShouldEqual, false) |
|
}) |
|
} |
|
|
|
func Test_statisticscache(t *testing.T) { |
|
ps, err := d.GetStatisticsCache(context.TODO()) |
|
convey.Convey("从redis获取统计数据, 没有数据", t, func() { |
|
convey.So(err, convey.ShouldBeNil) |
|
convey.So(ps, convey.ShouldBeNil) |
|
}) |
|
|
|
per := int64(1000) |
|
start := int64(1000000) |
|
var mids []int64 |
|
for i := start; i < start+per; i++ { |
|
mids = append(mids, i) |
|
} |
|
midscount := len(mids) |
|
midsstr, _ := json.Marshal(mids) |
|
ps = &model.PushStatistic{ |
|
Aid: int64(121321), |
|
Group: "ai:pushlist_offline_up", |
|
Type: 1, |
|
Mids: string(midsstr), |
|
MidsCounter: midscount, |
|
CTime: time.Now(), |
|
} |
|
|
|
err = d.AddStatisticsCache(context.TODO(), ps) |
|
convey.Convey("添加统计数据到redis", t, func() { |
|
convey.So(err, convey.ShouldBeNil) |
|
}) |
|
} |
|
|
|
func Test_perupperlimit(t *testing.T) { |
|
upper := int64(10) |
|
fan := int64(20) |
|
err := d.AddPerUpperLimitCache(context.TODO(), fan, upper, 1, 1) |
|
convey.Convey("添加推送次数限制", t, func() { |
|
convey.So(err, convey.ShouldEqual, nil) |
|
}) |
|
|
|
total, err := d.GetPerUpperLimitCache(context.TODO(), fan, upper) |
|
convey.Convey("获取推送次数限制, 失效后不存在", t, func() { |
|
convey.So(err, convey.ShouldEqual, nil) |
|
convey.So(total, convey.ShouldEqual, 1) |
|
time.Sleep(time.Second * 2) |
|
total, err = d.GetPerUpperLimitCache(context.TODO(), fan, upper) |
|
convey.So(err, convey.ShouldEqual, nil) |
|
convey.So(total, convey.ShouldEqual, 0) |
|
|
|
}) |
|
}
|
|
|