package order import ( "errors" "testing" ) // TestServiceDependencyChecks 测试所有 Service 方法的依赖检查 func TestServiceCreateWithNilRepo(t *testing.T) { svc := &Service{repo: nil} _, err := svc.Create(t.Context(), 1, CreateRequest{ListingID: 100}) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("Create() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceCreateWithZeroListingID(t *testing.T) { svc := &Service{repo: &Repository{}} _, err := svc.Create(t.Context(), 1, CreateRequest{ListingID: 0}) if !errors.Is(err, ErrInvalidRentHours) { t.Fatalf("Create() error = %v, want ErrInvalidRentHours", err) } } func TestServiceCancelWithNilRepo(t *testing.T) { svc := &Service{repo: nil} err := svc.Cancel(t.Context(), 1, 100) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("Cancel() error = %v, want ErrDependencyUnavailable", err) } } func TestServicePayWithNilRepo(t *testing.T) { svc := &Service{repo: nil} err := svc.Pay(t.Context(), 1, 100) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("Pay() error = %v, want ErrDependencyUnavailable", err) } } func TestServicePayWithZeroOrderID(t *testing.T) { svc := &Service{repo: &Repository{}} err := svc.Pay(t.Context(), 1, 0) if !errors.Is(err, ErrOrderCannotPay) { t.Fatalf("Pay() error = %v, want ErrOrderCannotPay", err) } } func TestServiceSubmitHandoffWithNilRepo(t *testing.T) { svc := &Service{repo: nil} _, err := svc.SubmitHandoff(t.Context(), 1, 100, SubmitHandoffRequest{Content: "test"}) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("SubmitHandoff() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceSubmitHandoffWithEmptyContent(t *testing.T) { svc := &Service{repo: &Repository{}} _, err := svc.SubmitHandoff(t.Context(), 1, 100, SubmitHandoffRequest{Content: ""}) if !errors.Is(err, ErrOrderCannotHandoff) { t.Fatalf("SubmitHandoff() error = %v, want ErrOrderCannotHandoff", err) } } func TestServiceConfirmReceiveWithNilRepo(t *testing.T) { svc := &Service{repo: nil} err := svc.ConfirmReceive(t.Context(), 1, 100) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("ConfirmReceive() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceSubmitReturnWithNilRepo(t *testing.T) { svc := &Service{repo: nil} _, err := svc.SubmitReturn(t.Context(), 1, 100, SubmitReturnRequest{Content: "test"}) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("SubmitReturn() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceSubmitReturnWithEmptyContent(t *testing.T) { svc := &Service{repo: &Repository{}} _, err := svc.SubmitReturn(t.Context(), 1, 100, SubmitReturnRequest{Content: ""}) if !errors.Is(err, ErrOrderCannotReturn) { t.Fatalf("SubmitReturn() error = %v, want ErrOrderCannotReturn", err) } } func TestServiceSubmitCheckoutWithNilRepo(t *testing.T) { svc := &Service{repo: nil} _, err := svc.SubmitCheckout(t.Context(), 1, 100, SubmitCheckoutRequest{Content: "test"}) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("SubmitCheckout() error = %v, want ErrDependencyUnavailable", err) } }