123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package http
- import (
- "context"
- "fmt"
- . "github.com/smartystreets/goconvey/convey"
- "go-common/app/service/live/wallet/model"
- "net/url"
- "testing"
- )
- func queryPay(t *testing.T, form *model.RechargeOrPayForm, platform string) *RechargeRes {
- params := url.Values{}
- params.Set("uid", fmt.Sprintf("%d", form.Uid))
- params.Set("coin_type", form.CoinType)
- params.Set("coin_num", fmt.Sprintf("%d", form.CoinNum))
- params.Set("extend_tid", form.ExtendTid)
- params.Set("timestamp", fmt.Sprintf("%d", form.Timestamp))
- params.Set("transaction_id", form.TransactionId)
- req, _ := client.NewRequest("POST", _payURL, "127.0.0.1", params)
- req.Header.Set("platform", platform)
- var res RechargeRes
- err := client.Do(context.TODO(), req, &res)
- if err != nil {
- t.Errorf("client.Do() error(%v)", err)
- t.FailNow()
- }
- return &res
- }
- func queryPayWithReason(t *testing.T, form *model.RechargeOrPayForm, platform string, reason string) *RechargeRes {
- params := url.Values{}
- params.Set("uid", fmt.Sprintf("%d", form.Uid))
- params.Set("coin_type", form.CoinType)
- params.Set("coin_num", fmt.Sprintf("%d", form.CoinNum))
- params.Set("extend_tid", form.ExtendTid)
- params.Set("timestamp", fmt.Sprintf("%d", form.Timestamp))
- params.Set("transaction_id", form.TransactionId)
- params.Set("reason", reason)
- req, _ := client.NewRequest("POST", _payURL, "127.0.0.1", params)
- req.Header.Set("platform", platform)
- var res RechargeRes
- err := client.Do(context.TODO(), req, &res)
- if err != nil {
- t.Errorf("client.Do() error(%v)", err)
- t.FailNow()
- }
- return &res
- }
- func TestPay(t *testing.T) {
- once.Do(startHTTP)
- Convey("pay normal 先调用get接口 再调用pay 再调用get接口 比较用户钱包数据", t, func() {
- platforms := []string{"pc", "android", "ios"}
- var num int64 = 1000
- var payNum int64 = 100
- uid := getTestRandUid()
- for _, platform := range platforms {
- beforeWallet := getTestWallet(t, uid, platform)
- res := queryRecharge(t, getTestRechargeOrPayForm(t, int32(model.RECHARGETYPE), uid, "gold", num, nil), platform)
- So(res.Code, ShouldEqual, 0)
- So(getIntCoinForTest(res.Resp.Gold)-getIntCoinForTest(beforeWallet.Gold), ShouldEqual, num)
- res = queryRecharge(t, getTestRechargeOrPayForm(t, int32(model.RECHARGETYPE), uid, "silver", num, nil), platform)
- So(res.Code, ShouldEqual, 0)
- So(getIntCoinForTest(res.Resp.Silver)-getIntCoinForTest(beforeWallet.Silver), ShouldEqual, num)
- afterWallet := getTestWallet(t, uid, platform)
- So(getIntCoinForTest(afterWallet.Gold)-getIntCoinForTest(beforeWallet.Gold), ShouldEqual, num)
- So(getIntCoinForTest(afterWallet.Silver)-getIntCoinForTest(beforeWallet.Silver), ShouldEqual, num)
- f1 := getTestRechargeOrPayForm(t, int32(model.PAYTYPE), uid, "gold", payNum, nil)
- res = queryPay(t, f1, platform)
- So(res.Code, ShouldEqual, 0)
- So(getIntCoinForTest(res.Resp.Gold)-getIntCoinForTest(afterWallet.Gold), ShouldEqual, -1*payNum)
- sr := queryStatus(t, uid, f1.TransactionId)
- So(sr.Code, ShouldEqual, 0)
- So(sr.Resp.Status, ShouldEqual, 0)
- res = queryPay(t, getTestRechargeOrPayForm(t, int32(model.PAYTYPE), uid, "silver", payNum, nil), platform)
- So(res.Code, ShouldEqual, 0)
- So(getIntCoinForTest(res.Resp.Silver)-getIntCoinForTest(afterWallet.Silver), ShouldEqual, -1*payNum)
- payWallet := getTestWallet(t, uid, platform)
- So(getIntCoinForTest(payWallet.Gold)-getIntCoinForTest(afterWallet.Gold), ShouldEqual, -1*payNum)
- So(getIntCoinForTest(payWallet.Silver)-getIntCoinForTest(afterWallet.Silver), ShouldEqual, -1*payNum)
- }
- })
- }
- func TestPayMetal(t *testing.T) {
- once.Do(startHTTP)
- Convey("pay metal", t, func() {
- var uid int64 = 1
- platform := "pc"
- f1 := getTestRechargeOrPayForm(t, int32(model.PAYTYPE), uid, "metal", 1, nil)
- res := queryPayWithReason(t, f1, platform, "ut")
- So(res.Code == 0 || res.Code == 1000000, ShouldBeTrue)
- })
- }
|