55 lines
1.7 KiB
Go
55 lines
1.7 KiB
Go
|
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)
|
||
|
})
|
||
|
}
|