Files

50 lines
1.4 KiB
Go

package model_test
import (
"testing"
"github.com/wangjia/pay/internal/model"
)
func TestV2Migrate(t *testing.T) {
db := model.OpenTestDB(t)
o := model.OrderV2{
OutTradeNo: "PAY-1", MerchantID: 1, BizSystem: "pangolin", BizRef: "u-1",
ProductID: 3, Subject: "pro-year", AmountMinor: 29990000, Currency: "USDT",
Status: model.OrderPendingV2,
}
if err := db.Create(&o).Error; err != nil {
t.Fatalf("create order: %v", err)
}
a := model.Attempt{
OutTradeNo: "PAY-1", Channel: "crypto", AccountID: "usdt-a1", ProviderRef: "P-9",
RenderType: "crypto_address", AmountMinor: 29990000, Currency: "USDT",
Status: model.AttemptPending,
}
if err := db.Create(&a).Error; err != nil {
t.Fatalf("create attempt: %v", err)
}
var got model.OrderV2
if err := db.Where("out_trade_no = ?", "PAY-1").First(&got).Error; err != nil {
t.Fatalf("read: %v", err)
}
if got.AmountMinor != 29990000 || got.Status != model.OrderPendingV2 {
t.Fatalf("got %+v", got)
}
}
func TestOrderStatusSettled(t *testing.T) {
settled := []model.OrderStatusV2{model.OrderPaidV2, model.OrderRefundingV2, model.OrderPartRefundedV2, model.OrderRefundedV2}
for _, s := range settled {
if !s.Settled() {
t.Fatalf("%s should be settled", s)
}
}
for _, s := range []model.OrderStatusV2{model.OrderCreatedV2, model.OrderPendingV2, model.OrderCanceledV2, model.OrderExpiredV2} {
if s.Settled() {
t.Fatalf("%s should NOT be settled", s)
}
}
}