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