bilibili-backup/app/job/main/coupon/service/service_test.go
2019-04-22 02:59:20 +00:00

155 lines
3.3 KiB
Go

package service
import (
"context"
"flag"
"testing"
"time"
"go-common/app/job/main/coupon/conf"
"go-common/app/job/main/coupon/model"
"go-common/library/database/sql"
. "github.com/smartystreets/goconvey/convey"
)
var (
s *Service
c context.Context
)
func init() {
var (
err error
)
flag.Set("conf", "../cmd/coupon-job.toml")
if err = conf.Init(); err != nil {
panic(err)
}
c = context.Background()
if s == nil {
s = New(conf.Conf)
}
time.Sleep(time.Second)
}
// go test -test.v -test.run TestCheckCouponDeliver
func TestCheckCouponDeliver(t *testing.T) {
Convey("TestCheckCouponDeliver ", t, func() {
var (
err error
)
arg := &model.NotifyParam{
Mid: 1,
CouponToken: "676289266420180402162120",
NotifyURL: "http://bangumi.bilibili.com/pay/inner/notify_ticket",
}
err = s.CheckCouponDeliver(context.TODO(), arg)
So(err, ShouldBeNil)
})
}
func TestCheckInUseCoupon(t *testing.T) {
Convey("TestCheckInUseCoupon ", t, func() {
s.CheckInUseCoupon()
})
}
func TestNotifyproc(t *testing.T) {
Convey("TestNotifyproc ", t, func() {
var err error
time.Sleep(time.Duration(s.c.Properties.NotifyTimeInterval))
for i := 0; i < 10; i++ {
arg := &model.NotifyParam{
Mid: 1,
CouponToken: "729792667120180402161647",
NotifyURL: "http://bangumi.bilibili.com/pay/inner/notify_ticket",
}
if err = s.CheckCouponDeliver(context.TODO(), arg); err != nil {
arg.NotifyCount++
s.notifyChan <- arg
}
So(err, ShouldBeNil)
}
})
}
func TestUpdateCoupon(t *testing.T) {
Convey("TestUpdateCoupon ", t, func() {
cp := &model.CouponInfo{
CouponToken: "729792667120180402161647",
Mid: 1,
CouponType: 1,
Ver: 4,
}
data := &model.CallBackRet{
Ver: 3,
}
err := s.updateCouponState(c, cp, 2, data)
So(err, ShouldBeNil)
})
}
// go test -test.v -test.run TestUpdateBalance
func TestUpdateBalance(t *testing.T) {
Convey("TestUpdateBalance ", t, func() {
var (
tx *sql.Tx
mid int64 = 1
orderNo = "9372774783174654609"
ls []*model.CouponBalanceChangeLog
err error
)
ls, err = s.dao.ConsumeCouponLog(c, mid, orderNo, model.Consume)
So(err, ShouldBeNil)
tx, err = s.dao.BeginTran(c)
So(err, ShouldBeNil)
err = s.UpdateBalance(c, tx, mid, model.Cartoon, ls, orderNo)
So(err, ShouldBeNil)
err = tx.Commit()
So(err, ShouldBeNil)
})
}
// go test -test.v -test.run TestUpdateOrderState
func TestUpdateOrderState(t *testing.T) {
Convey("TestUpdateOrderState ", t, func() {
var (
orderNo = "6462644254161152528"
faildOrderNo = "9176715513161453816"
err error
o *model.CouponOrder
)
data := &model.CallBackRet{
Ver: 123456,
IsPaid: 1,
}
o, err = s.dao.ByOrderNo(c, orderNo)
So(err, ShouldBeNil)
err = s.UpdateOrderState(c, o, model.PaySuccess, data)
So(err, ShouldBeNil)
o, err = s.dao.ByOrderNo(c, faildOrderNo)
So(err, ShouldBeNil)
err = s.UpdateOrderState(c, o, model.PayFaild, data)
So(err, ShouldBeNil)
})
}
// go test -test.v -test.run TestCouponCartoonDeliver
func TestCouponCartoonDeliver(t *testing.T) {
Convey("TestCouponCartoonDeliver ", t, func() {
var (
err error
)
arg := &model.NotifyParam{
CouponToken: "5586615697161708066",
Mid: 1,
Type: 2,
}
err = s.CouponCartoonDeliver(c, arg)
So(err, ShouldBeNil)
})
}