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.
 
 
 

54 lines
1.7 KiB

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