85 lines
2.4 KiB
Go
85 lines
2.4 KiB
Go
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)
|
||
|
||
})
|
||
}
|