go-common/app/interface/live/push-live/service/common_message_test.go
2019-04-22 18:49:16 +08:00

99 lines
2.5 KiB
Go

package service
import (
. "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"
"strconv"
"testing"
)
func makeTestCommonPushTask(title, body, linkValue, group string, business, expireTime int) (task *model.ApPushTask) {
m := &model.LiveCommonMessage{}
m.MsgContent = model.LiveCommonMessageContent{
Business: business,
Group: group,
Mids: "",
AlertTitle: title,
AlertBody: body,
LinkValue: linkValue,
ExpireTime: expireTime,
}
task = s.InitCommonTask(m)
return
}
func TestService_InitCommonTask(t *testing.T) {
initd()
Convey("should return init struct", t, func() {
title := "room_title"
body := "测试"
group := "group"
linkValue := strconv.Itoa(rand.Intn(9999))
expireTime := rand.Intn(10000) + 1
business := rand.Intn(9999)
task := makeTestCommonPushTask(title, body, linkValue, group, business, expireTime)
So(task.AlertTitle, ShouldResemble, title)
So(task.AlertBody, ShouldResemble, body)
So(task.ExpireTime, ShouldResemble, expireTime)
So(task.LinkValue, ShouldResemble, linkValue)
So(task.MidSource, ShouldEqual, business)
So(task.Group, ShouldEqual, group)
})
}
func TestService_setPushInterval(t *testing.T) {
initd()
Convey("test setPushInterval", t, func() {
var (
resTotal int
total int
business int
task *model.ApPushTask
mids []int64
err error
)
Convey("test business will not exec logic", func() {
business = rand.Intn(100)
task = &model.ApPushTask{}
total = 10
mids = makeMids(total)
resTotal, err = s.setPushInterval(business, rand.Int31(), mids, task)
So(err, ShouldBeNil)
So(resTotal, ShouldEqual, 0)
})
Convey("test business will exec logic", func() {
var conn redis.Conn
business = 111
task = &model.ApPushTask{
LinkValue: "test",
}
total = 10
mids = makeMids(total)
resTotal, err = s.setPushInterval(business, 300, mids, task)
So(err, ShouldBeNil)
So(resTotal, 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 mids {
key := dao.GetIntervalKey(mid)
conn.Do("DEL", key)
}
conn.Close()
})
})
}
func makeMids(total int) []int64 {
mids := make([]int64, 0, total)
for i := 0; i < total; i++ {
mids = append(mids, rand.Int63())
}
return mids
}