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.
53 lines
1.2 KiB
53 lines
1.2 KiB
package service |
|
|
|
import ( |
|
"testing" |
|
|
|
. "github.com/smartystreets/goconvey/convey" |
|
"go-common/app/interface/live/push-live/dao" |
|
"go-common/app/interface/live/push-live/model" |
|
"go-common/library/cache/redis" |
|
"math/rand" |
|
) |
|
|
|
func TestService_MidFilter(t *testing.T) { |
|
initd() |
|
Convey("test mid filter", t, func() { |
|
var ( |
|
total int |
|
midList map[int64]bool |
|
business int |
|
resMids []int64 |
|
task *model.ApPushTask |
|
err error |
|
conn redis.Conn |
|
) |
|
business = rand.Intn(99) + 1 // should through all filters |
|
// init mids input |
|
total = 10 |
|
midList = make(map[int64]bool, total) |
|
for i := 0; i < total; i++ { |
|
mid := rand.Int63() |
|
midList[mid] = true |
|
} |
|
// init task |
|
task = &model.ApPushTask{ |
|
LinkValue: "test", |
|
} |
|
// do mid filter |
|
resMids = s.midFilter(midList, business, task) |
|
So(len(resMids), ShouldEqual, total) |
|
// clean |
|
conn, err = redis.Dial(s.c.Redis.PushInterval.Proto, s.c.Redis.PushInterval.Addr, s.dao.RedisOption()...) |
|
So(err, ShouldBeNil) |
|
for mid := range midList { |
|
keys := []string{ |
|
dao.GetDailyLimitKey(mid), |
|
dao.GetIntervalKey(mid), |
|
} |
|
for _, key := range keys { |
|
conn.Do("DEL", key) |
|
} |
|
} |
|
}) |
|
}
|
|
|