package app import ( "context" "reflect" "testing" "git.5iot.com/iotlcm-public/iotlcm-app/internal/consts" "git.5iot.com/iotlcm-public/iotlcm-app/internal/model/entity" ) func TestPublicCardRowToModelKeepsCardIdentifiers(t *testing.T) { svc := &sAppCard{} row := &appCardQueryRow{ TSimCardInfo: entity.TSimCardInfo{ Id: 100, Iccid: "89860123456789012345", Msisdn: "14400005678", Imsi: "460001234567890", Imei: "861234567890123", DeptId: 10, TenantId: "000000", }, } card := svc.publicCardRowToModel(context.Background(), row, "14400005678") if card == nil { t.Fatal("publicCardRowToModel returned nil") } if card.Iccid != row.Iccid || card.Msisdn != row.Msisdn || card.Imsi != row.Imsi || card.Imei != row.Imei { t.Fatalf("card identifiers were not preserved: %#v", card) } if card.Id != 0 || card.DeptId != 0 || card.TenantId != "" { t.Fatalf("private card fields should still be hidden: %#v", card) } } func TestAppCardAbnormalReasons(t *testing.T) { tests := []struct { name string bossStatus int packageStatus int want []string }{ { name: "expired package on activated card", bossStatus: consts.V3ApiSimBossCardStatusActivated, packageStatus: consts.PackageStatusExpired, want: []string{"套餐已过期"}, }, { name: "stopped card", bossStatus: consts.V3ApiSimBossCardStatusStopped, packageStatus: consts.PackageStatusEffective, want: []string{"卡状态停机"}, }, { name: "unknown boss status", bossStatus: 99, packageStatus: consts.PackageStatusEffective, want: []string{"未知卡状态:99"}, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := appCardAbnormalReasons(tt.bossStatus, tt.packageStatus) if !reflect.DeepEqual(got, tt.want) { t.Fatalf("appCardAbnormalReasons() = %#v, want %#v", got, tt.want) } }) } }