package wallet import ( "errors" "testing" ) // TestServiceAccountWithNilRepo 测试依赖检查 func TestServiceAccountWithNilRepo(t *testing.T) { svc := &Service{repo: nil} _, err := svc.Account(1) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("Account() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceLedgerWithNilRepo(t *testing.T) { svc := &Service{repo: nil} _, err := svc.Ledger(1, 1, 10) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("Ledger() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceRechargeIsDisabled(t *testing.T) { svc := &Service{repo: &Repository{}} _, err := svc.Recharge(1, RechargeRequest{AmountCent: 100}) if !errors.Is(err, ErrRechargeDisabled) { t.Fatalf("Recharge() error = %v, want ErrRechargeDisabled", err) } } func TestServiceWithdrawIsPending(t *testing.T) { svc := &Service{repo: &Repository{}} _, err := svc.Withdraw(1, WithdrawRequest{AmountCent: 100}) if !errors.Is(err, ErrFeaturePending) { t.Fatalf("Withdraw() error = %v, want ErrFeaturePending", err) } } func TestServiceAdminLedgerWithNilRepo(t *testing.T) { svc := &Service{repo: nil} _, err := svc.AdminLedger(AdminLedgerQuery{Page: 1, PageSize: 10}) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("AdminLedger() error = %v, want ErrDependencyUnavailable", err) } }