34 lines
1.1 KiB
Go
34 lines
1.1 KiB
Go
package gateway_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/glebarez/sqlite"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
|
|
"github.com/wangjia/pay/internal/gateway"
|
|
"github.com/wangjia/pay/internal/model"
|
|
)
|
|
|
|
func TestDBProductResolver(t *testing.T) {
|
|
db, err := gorm.Open(sqlite.Open("file:prodtest?mode=memory&cache=shared"),
|
|
&gorm.Config{Logger: logger.Default.LogMode(logger.Silent), TranslateError: true})
|
|
if err != nil {
|
|
t.Fatalf("open: %v", err)
|
|
}
|
|
if err := db.AutoMigrate(&model.Product{}); err != nil {
|
|
t.Fatalf("migrate: %v", err)
|
|
}
|
|
db.Create(&model.Product{Name: "标准年付", Price: "299.00", BizCode: "annual_standard", Active: true})
|
|
|
|
r := gateway.NewDBProductResolver(db, "CNY")
|
|
minor, cur, subject, bizCode, err := r.Resolve("annual_standard")
|
|
if err != nil || minor != 29900 || cur != "CNY" || subject != "标准年付" || bizCode != "annual_standard" {
|
|
t.Fatalf("resolve = %d %s %s %s %v", minor, cur, subject, bizCode, err)
|
|
}
|
|
if _, _, _, _, err := r.Resolve("ghost"); err != gateway.ErrProductNotFound {
|
|
t.Fatalf("缺套餐应 ErrProductNotFound, got %v", err)
|
|
}
|
|
}
|