go-common/app/interface/main/push-archive/dao/redis_test.go
2019-04-22 18:49:16 +08:00

85 lines
2.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
})
}