go-common/app/interface/main/push-archive/service/limit_test.go

55 lines
1.7 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package service
import (
"testing"
"time"
"go-common/app/interface/main/push-archive/dao"
"github.com/smartystreets/goconvey/convey"
)
func Test_limit(t *testing.T) {
initd2()
upper := int64(113)
convey.Convey("upper主次数限制", t, func() {
convey.So(s.limit(upper), convey.ShouldEqual, false)
convey.So(s.limit(upper), convey.ShouldEqual, true)
convey.So(s.limit(upper), convey.ShouldEqual, true)
time.Sleep(time.Second * 2)
convey.So(s.limit(upper), convey.ShouldEqual, false)
convey.So(s.limit(upper), convey.ShouldEqual, true)
})
fan := int64(121)
g := &dao.FanGroup{
Limit: 2,
PerUpperLimit: 0,
LimitExpire: 2,
}
noLimitFans := &map[int64]int{}
convey.Convey("粉丝推送次数限制", t, func() {
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, true)
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, true)
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, false)
time.Sleep(time.Second * 2)
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, true)
})
g.PerUpperLimit = 1
fan = int64(333)
convey.Convey("粉丝推送upper主的次数限制", t, func() {
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, true)
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, false)
time.Sleep(time.Second * 2)
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, true)
})
convey.Convey("粉丝不受pushlimit限制", t, func() {
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, false)
(*noLimitFans)[fan] = 1
convey.So(s.pushLimit(fan, upper, g, noLimitFans), convey.ShouldEqual, true)
})
}