|
|
@@ -36,30 +36,32 @@ func insertSubscriptionPlanForPaymentGuardTest(t *testing.T, id int) *Subscripti
|
|
|
return plan
|
|
|
}
|
|
|
|
|
|
-func insertSubscriptionOrderForPaymentGuardTest(t *testing.T, tradeNo string, userID int, planID int, paymentMethod string) {
|
|
|
+func insertSubscriptionOrderForPaymentGuardTest(t *testing.T, tradeNo string, userID int, planID int, paymentProvider string) {
|
|
|
t.Helper()
|
|
|
order := &SubscriptionOrder{
|
|
|
- UserId: userID,
|
|
|
- PlanId: planID,
|
|
|
- Money: 9.99,
|
|
|
- TradeNo: tradeNo,
|
|
|
- PaymentMethod: paymentMethod,
|
|
|
- Status: common.TopUpStatusPending,
|
|
|
- CreateTime: time.Now().Unix(),
|
|
|
+ UserId: userID,
|
|
|
+ PlanId: planID,
|
|
|
+ Money: 9.99,
|
|
|
+ TradeNo: tradeNo,
|
|
|
+ PaymentMethod: paymentProvider,
|
|
|
+ PaymentProvider: paymentProvider,
|
|
|
+ Status: common.TopUpStatusPending,
|
|
|
+ CreateTime: time.Now().Unix(),
|
|
|
}
|
|
|
require.NoError(t, order.Insert())
|
|
|
}
|
|
|
|
|
|
-func insertTopUpForPaymentGuardTest(t *testing.T, tradeNo string, userID int, paymentMethod string) {
|
|
|
+func insertTopUpForPaymentGuardTest(t *testing.T, tradeNo string, userID int, paymentProvider string) {
|
|
|
t.Helper()
|
|
|
topUp := &TopUp{
|
|
|
- UserId: userID,
|
|
|
- Amount: 2,
|
|
|
- Money: 9.99,
|
|
|
- TradeNo: tradeNo,
|
|
|
- PaymentMethod: paymentMethod,
|
|
|
- Status: common.TopUpStatusPending,
|
|
|
- CreateTime: time.Now().Unix(),
|
|
|
+ UserId: userID,
|
|
|
+ Amount: 2,
|
|
|
+ Money: 9.99,
|
|
|
+ TradeNo: tradeNo,
|
|
|
+ PaymentMethod: paymentProvider,
|
|
|
+ PaymentProvider: paymentProvider,
|
|
|
+ Status: common.TopUpStatusPending,
|
|
|
+ CreateTime: time.Now().Unix(),
|
|
|
}
|
|
|
require.NoError(t, topUp.Insert())
|
|
|
}
|
|
|
@@ -89,7 +91,7 @@ func TestRechargeWaffoPancake_RejectsMismatchedPaymentMethod(t *testing.T) {
|
|
|
truncateTables(t)
|
|
|
|
|
|
insertUserForPaymentGuardTest(t, 101, 0)
|
|
|
- insertTopUpForPaymentGuardTest(t, "waffo-pancake-guard", 101, PaymentMethodStripe)
|
|
|
+ insertTopUpForPaymentGuardTest(t, "waffo-pancake-guard", 101, PaymentProviderStripe)
|
|
|
|
|
|
err := RechargeWaffoPancake("waffo-pancake-guard")
|
|
|
require.Error(t, err)
|
|
|
@@ -100,27 +102,27 @@ func TestRechargeWaffoPancake_RejectsMismatchedPaymentMethod(t *testing.T) {
|
|
|
assert.Equal(t, 0, getUserQuotaForPaymentGuardTest(t, 101))
|
|
|
}
|
|
|
|
|
|
-func TestUpdatePendingTopUpStatus_RejectsMismatchedPaymentMethod(t *testing.T) {
|
|
|
+func TestUpdatePendingTopUpStatus_RejectsMismatchedPaymentProvider(t *testing.T) {
|
|
|
testCases := []struct {
|
|
|
- name string
|
|
|
- tradeNo string
|
|
|
- storedPaymentMethod string
|
|
|
- expectedPaymentMethod string
|
|
|
- targetStatus string
|
|
|
+ name string
|
|
|
+ tradeNo string
|
|
|
+ storedPaymentProvider string
|
|
|
+ expectedPaymentProvider string
|
|
|
+ targetStatus string
|
|
|
}{
|
|
|
{
|
|
|
- name: "stripe expire",
|
|
|
- tradeNo: "stripe-expire-guard",
|
|
|
- storedPaymentMethod: PaymentMethodCreem,
|
|
|
- expectedPaymentMethod: PaymentMethodStripe,
|
|
|
- targetStatus: common.TopUpStatusExpired,
|
|
|
+ name: "stripe expire",
|
|
|
+ tradeNo: "stripe-expire-guard",
|
|
|
+ storedPaymentProvider: PaymentProviderCreem,
|
|
|
+ expectedPaymentProvider: PaymentProviderStripe,
|
|
|
+ targetStatus: common.TopUpStatusExpired,
|
|
|
},
|
|
|
{
|
|
|
- name: "waffo failed",
|
|
|
- tradeNo: "waffo-failed-guard",
|
|
|
- storedPaymentMethod: PaymentMethodStripe,
|
|
|
- expectedPaymentMethod: PaymentMethodWaffo,
|
|
|
- targetStatus: common.TopUpStatusFailed,
|
|
|
+ name: "waffo failed",
|
|
|
+ tradeNo: "waffo-failed-guard",
|
|
|
+ storedPaymentProvider: PaymentProviderStripe,
|
|
|
+ expectedPaymentProvider: PaymentProviderWaffo,
|
|
|
+ targetStatus: common.TopUpStatusFailed,
|
|
|
},
|
|
|
}
|
|
|
|
|
|
@@ -128,23 +130,23 @@ func TestUpdatePendingTopUpStatus_RejectsMismatchedPaymentMethod(t *testing.T) {
|
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
|
truncateTables(t)
|
|
|
insertUserForPaymentGuardTest(t, 150, 0)
|
|
|
- insertTopUpForPaymentGuardTest(t, tc.tradeNo, 150, tc.storedPaymentMethod)
|
|
|
+ insertTopUpForPaymentGuardTest(t, tc.tradeNo, 150, tc.storedPaymentProvider)
|
|
|
|
|
|
- err := UpdatePendingTopUpStatus(tc.tradeNo, tc.expectedPaymentMethod, tc.targetStatus)
|
|
|
+ err := UpdatePendingTopUpStatus(tc.tradeNo, tc.expectedPaymentProvider, tc.targetStatus)
|
|
|
require.ErrorIs(t, err, ErrPaymentMethodMismatch)
|
|
|
assert.Equal(t, common.TopUpStatusPending, getTopUpStatusForPaymentGuardTest(t, tc.tradeNo))
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func TestCompleteSubscriptionOrder_RejectsMismatchedPaymentMethod(t *testing.T) {
|
|
|
+func TestCompleteSubscriptionOrder_RejectsMismatchedPaymentProvider(t *testing.T) {
|
|
|
truncateTables(t)
|
|
|
|
|
|
insertUserForPaymentGuardTest(t, 202, 0)
|
|
|
plan := insertSubscriptionPlanForPaymentGuardTest(t, 301)
|
|
|
- insertSubscriptionOrderForPaymentGuardTest(t, "sub-guard-order", 202, plan.Id, PaymentMethodStripe)
|
|
|
+ insertSubscriptionOrderForPaymentGuardTest(t, "sub-guard-order", 202, plan.Id, PaymentProviderStripe)
|
|
|
|
|
|
- err := CompleteSubscriptionOrder("sub-guard-order", `{"provider":"epay"}`, "alipay")
|
|
|
+ err := CompleteSubscriptionOrder("sub-guard-order", `{"provider":"epay"}`, PaymentProviderEpay, "alipay")
|
|
|
require.ErrorIs(t, err, ErrPaymentMethodMismatch)
|
|
|
|
|
|
order := GetSubscriptionOrderByTradeNo("sub-guard-order")
|
|
|
@@ -156,14 +158,14 @@ func TestCompleteSubscriptionOrder_RejectsMismatchedPaymentMethod(t *testing.T)
|
|
|
assert.Nil(t, topUp)
|
|
|
}
|
|
|
|
|
|
-func TestExpireSubscriptionOrder_RejectsMismatchedPaymentMethod(t *testing.T) {
|
|
|
+func TestExpireSubscriptionOrder_RejectsMismatchedPaymentProvider(t *testing.T) {
|
|
|
truncateTables(t)
|
|
|
|
|
|
insertUserForPaymentGuardTest(t, 303, 0)
|
|
|
plan := insertSubscriptionPlanForPaymentGuardTest(t, 401)
|
|
|
- insertSubscriptionOrderForPaymentGuardTest(t, "sub-expire-guard", 303, plan.Id, PaymentMethodStripe)
|
|
|
+ insertSubscriptionOrderForPaymentGuardTest(t, "sub-expire-guard", 303, plan.Id, PaymentProviderStripe)
|
|
|
|
|
|
- err := ExpireSubscriptionOrder("sub-expire-guard", PaymentMethodCreem)
|
|
|
+ err := ExpireSubscriptionOrder("sub-expire-guard", PaymentProviderCreem)
|
|
|
require.ErrorIs(t, err, ErrPaymentMethodMismatch)
|
|
|
|
|
|
order := GetSubscriptionOrderByTradeNo("sub-expire-guard")
|