75 lines
1.7 KiB
Go
75 lines
1.7 KiB
Go
package service
|
||
|
||
import (
|
||
"container/ring"
|
||
"context"
|
||
"flag"
|
||
"path/filepath"
|
||
"testing"
|
||
"time"
|
||
|
||
"go-common/app/job/main/sms/conf"
|
||
"go-common/app/job/main/sms/model"
|
||
smsmdl "go-common/app/service/main/sms/model"
|
||
"go-common/library/net/trace"
|
||
|
||
. "github.com/smartystreets/goconvey/convey"
|
||
)
|
||
|
||
var srv *Service
|
||
|
||
func init() {
|
||
dir, _ := filepath.Abs("../cmd/sms-job-test.toml")
|
||
flag.Set("conf", dir)
|
||
conf.Init()
|
||
srv = New(conf.Conf)
|
||
time.Sleep(time.Second)
|
||
}
|
||
|
||
func WithService(f func(s *Service)) func() {
|
||
return func() {
|
||
f(srv)
|
||
}
|
||
}
|
||
|
||
func Test_ring(t *testing.T) {
|
||
Convey("test ring", t, WithService(func(s *Service) {
|
||
r := ring.New(3)
|
||
r.Value = 0
|
||
r = r.Next()
|
||
r.Value = 1
|
||
r = r.Next()
|
||
r.Value = 2
|
||
So(r.Len(), ShouldEqual, 3)
|
||
for i := 0; i < 5; i++ {
|
||
r = r.Next()
|
||
t.Logf("%d", r.Value)
|
||
}
|
||
}))
|
||
}
|
||
|
||
func Test_Sms(t *testing.T) {
|
||
Convey("sms", t, WithService(func(s *Service) {
|
||
// http request会自动加trace header,不init trace的话,header value为空为会兴企reset
|
||
trace.Init(s.c.Tracer)
|
||
defer trace.Close()
|
||
c := context.TODO()
|
||
sl := &smsmdl.ModelSend{Mobile: "", Content: "您的账号正在哔哩哔哩2017动画角色人气大赏活动中进行领票操作,验证码为123456当日有效", Code: "whatever", Type: 1}
|
||
p := s.smsp.Value.(model.Provider)
|
||
_, err := p.SendSms(c, sl)
|
||
So(err, ShouldBeNil)
|
||
s.smsp.Ring = s.smsp.Next()
|
||
p = s.smsp.Value.(model.Provider)
|
||
_, err = p.SendSms(c, sl)
|
||
So(err, ShouldBeNil)
|
||
s.smsp.Ring = s.smsp.Next()
|
||
p = s.smsp.Value.(model.Provider)
|
||
_, err = p.SendSms(c, sl)
|
||
So(err, ShouldBeNil)
|
||
s.smsp.Ring = s.smsp.Next()
|
||
p = s.smsp.Value.(model.Provider)
|
||
_, err = p.SendSms(c, sl)
|
||
So(err, ShouldBeNil)
|
||
}))
|
||
}
|