Files
iotlcm/admin-svr/server/internal/logic/iot/cardpackage/subscribe_test.go

71 lines
2.3 KiB
Go

package cardpackage
import (
"testing"
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/consts"
"github.com/gogf/gf/v2/os/gtime"
)
func TestOrderTypeForBusinessType(t *testing.T) {
tests := []struct {
name string
businessType int
want int
}{
{name: "subscribe", businessType: consts.PackageBusinessTypeSubscribe, want: consts.OrderTypeCardSubscribe},
{name: "renew", businessType: consts.PackageBusinessTypeRenew, want: consts.OrderTypeCardRenew},
{name: "change", businessType: consts.PackageBusinessTypeChange, want: consts.OrderTypeCardChange},
{name: "unknown defaults to subscribe", businessType: 99, want: consts.OrderTypeCardSubscribe},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
if got := orderTypeForBusinessType(test.businessType); got != test.want {
t.Fatalf("orderTypeForBusinessType(%d) = %d, want %d", test.businessType, got, test.want)
}
})
}
}
func TestCalcPackageStatuses(t *testing.T) {
now := gtime.NewFromStr("2026-10-27 12:00:00")
tests := []struct {
name string
beginAt, endAt *gtime.Time
wantPackage, wantBind int
}{
{
name: "renew period already effective",
beginAt: gtime.NewFromStr("2026-09-30 23:59:59"),
endAt: gtime.NewFromStr("2027-09-30 23:59:59"),
wantPackage: consts.PackageStatusEffective,
wantBind: consts.EffectiveStatusEffective,
},
{
name: "renew period starts in future",
beginAt: gtime.NewFromStr("2026-11-01 23:59:59"),
endAt: gtime.NewFromStr("2027-11-01 23:59:59"),
wantPackage: consts.PackageStatusPending,
wantBind: consts.EffectiveStatusPending,
},
{
name: "renew period already expired",
beginAt: gtime.NewFromStr("2025-09-30 23:59:59"),
endAt: gtime.NewFromStr("2026-09-30 23:59:59"),
wantPackage: consts.PackageStatusExpired,
wantBind: consts.EffectiveStatusExpired,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
packageStatus, effectiveStatus := calcPackageStatuses(now, test.beginAt, test.endAt)
if packageStatus != test.wantPackage || effectiveStatus != test.wantBind {
t.Fatalf("calcPackageStatuses() = (%d, %d), want (%d, %d)", packageStatus, effectiveStatus, test.wantPackage, test.wantBind)
}
})
}
}