Skip to content

Commit 539c87c

Browse files
authored
Add a wholesome test to ensure proper JSON converters are applied (#1761)
1 parent 7a68e29 commit 539c87c

26 files changed

+167
-3
lines changed

src/Stripe.net/Services/Account/AccountTosAcceptanceOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ namespace Stripe
22
{
33
using System;
44
using Newtonsoft.Json;
5+
using Stripe.Infrastructure;
56

67
public class AccountTosAcceptanceOptions : INestedOptions
78
{
89
[JsonProperty("date")]
10+
[JsonConverter(typeof(DateTimeConverter))]
911
public DateTime? Date { get; set; }
1012

1113
[JsonProperty("ip")]

src/Stripe.net/Services/Coupons/CouponCreateOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class CouponCreateOptions : BaseOptions, IHasId, IHasMetadata
3535
public string Name { get; set; }
3636

3737
[JsonProperty("redeem_by")]
38+
[JsonConverter(typeof(DateTimeConverter))]
3839
public DateTime? RedeemBy { get; set; }
3940
}
4041
}

src/Stripe.net/Services/Customers/CustomerCreateOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public class CustomerCreateOptions : BaseOptions, IHasMetadata
106106
public decimal? TaxPercent { get; set; }
107107

108108
[JsonProperty("trial_end")]
109+
[JsonConverter(typeof(AnyOfConverter))]
109110
public AnyOf<DateTime?, SubscriptionTrialEnd> TrialEnd { get; set; }
110111

111112
[JsonProperty("validate")]

src/Stripe.net/Services/FileLinks/FileLinkSharedOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class FileLinkSharedOptions : BaseOptions, IHasMetadata
1111
/// A future timestamp after which the link will no longer be usable.
1212
/// </summary>
1313
[JsonProperty("expires_at")]
14+
[JsonConverter(typeof(DateTimeConverter))]
1415
public DateTime? ExpiresAt { get; set; }
1516

1617
/// <summary>

src/Stripe.net/Services/Files/FileLinkDataOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ namespace Stripe
33
using System;
44
using System.Collections.Generic;
55
using Newtonsoft.Json;
6+
using Stripe.Infrastructure;
67

78
public class FileLinkDataOptions : BaseOptions, IHasMetadata
89
{
@@ -19,6 +20,7 @@ public class FileLinkDataOptions : BaseOptions, IHasMetadata
1920
/// A future timestamp after which the link will no longer be usable.
2021
/// </summary>
2122
[JsonProperty("expires_at")]
23+
[JsonConverter(typeof(DateTimeConverter))]
2224
public DateTime? ExpiresAt { get; set; }
2325

2426
/// <summary>

src/Stripe.net/Services/Invoices/InvoiceCreateOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public class InvoiceCreateOptions : BaseOptions, IHasMetadata
7171
/// <c>billing=send_invoice</c>.
7272
/// </summary>
7373
[JsonProperty("due_date")]
74+
[JsonConverter(typeof(DateTimeConverter))]
7475
public DateTime? DueDate { get; set; }
7576

7677
/// <summary>
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
namespace Stripe
22
{
33
using System;
4-
using System.Collections.Generic;
54
using Newtonsoft.Json;
5+
using Stripe.Infrastructure;
66

77
public class InvoiceItemPeriodOptions : INestedOptions
88
{
99
/// <summary>
1010
/// The end of the period, which must be greater than or equal to the start.
1111
/// </summary>
1212
[JsonProperty("end")]
13+
[JsonConverter(typeof(DateTimeConverter))]
1314
public DateTime? End { get; set; }
1415

1516
/// <summary>
1617
/// he start of the period.
1718
/// </summary>
1819
[JsonProperty("start")]
20+
[JsonConverter(typeof(DateTimeConverter))]
1921
public DateTime? Start { get; set; }
2022
}
2123
}

src/Stripe.net/Services/Invoices/InvoiceUpdateOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public class InvoiceUpdateOptions : BaseOptions, IHasMetadata
6262
/// <c>billing=send_invoice</c>.
6363
/// </summary>
6464
[JsonProperty("due_date")]
65+
[JsonConverter(typeof(DateTimeConverter))]
6566
public DateTime? DueDate { get; set; }
6667

6768
/// <summary>

src/Stripe.net/Services/Invoices/UpcomingInvoiceListLineItemsOptions.cs

+3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class UpcomingInvoiceListLineItemsOptions : ListOptions
3838
/// <see cref="Stripe.SubscriptionBillingCycleAnchor"/>.
3939
/// </summary>
4040
[JsonProperty("subscription_billing_cycle_anchor")]
41+
[JsonConverter(typeof(AnyOfConverter))]
4142
public AnyOf<DateTime?, SubscriptionBillingCycleAnchor> SubscriptionBillingCycleAnchor { get; set; }
4243

4344
/// <summary>
@@ -89,6 +90,7 @@ public class UpcomingInvoiceListLineItemsOptions : ListOptions
8990
/// be set to false.
9091
/// </summary>
9192
[JsonProperty("subscription_proration_date")]
93+
[JsonConverter(typeof(DateTimeConverter))]
9294
public DateTime? SubscriptionProrationDate { get; set; }
9395

9496
/// <summary>
@@ -106,6 +108,7 @@ public class UpcomingInvoiceListLineItemsOptions : ListOptions
106108
/// required.
107109
/// </summary>
108110
[JsonProperty("subscription_trial_end")]
111+
[JsonConverter(typeof(DateTimeConverter))]
109112
public DateTime? SubscriptionTrialEnd { get; set; }
110113

111114
/// <summary>

src/Stripe.net/Services/Invoices/UpcomingInvoiceOptions.cs

+3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class UpcomingInvoiceOptions : BaseOptions
3838
/// <see cref="Stripe.SubscriptionBillingCycleAnchor"/>.
3939
/// </summary>
4040
[JsonProperty("subscription_billing_cycle_anchor")]
41+
[JsonConverter(typeof(AnyOfConverter))]
4142
public AnyOf<DateTime?, SubscriptionBillingCycleAnchor> SubscriptionBillingCycleAnchor { get; set; }
4243

4344
/// <summary>
@@ -89,6 +90,7 @@ public class UpcomingInvoiceOptions : BaseOptions
8990
/// be set to false.
9091
/// </summary>
9192
[JsonProperty("subscription_proration_date")]
93+
[JsonConverter(typeof(DateTimeConverter))]
9294
public DateTime? SubscriptionProrationDate { get; set; }
9395

9496
/// <summary>
@@ -106,6 +108,7 @@ public class UpcomingInvoiceOptions : BaseOptions
106108
/// required.
107109
/// </summary>
108110
[JsonProperty("subscription_trial_end")]
111+
[JsonConverter(typeof(DateTimeConverter))]
109112
public DateTime? SubscriptionTrialEnd { get; set; }
110113

111114
/// <summary>

src/Stripe.net/Services/PaymentIntents/PaymentIntentConfirmOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ namespace Stripe
33
using System;
44
using System.Collections.Generic;
55
using Newtonsoft.Json;
6+
using Stripe.Infrastructure;
67

78
public class PaymentIntentConfirmOptions : BaseOptions
89
{
@@ -20,6 +21,7 @@ public class PaymentIntentConfirmOptions : BaseOptions
2021
/// charge them later</a>.
2122
/// </summary>
2223
[JsonProperty("off_session")]
24+
[JsonConverter(typeof(AnyOfConverter))]
2325
public AnyOf<bool?, string> OffSession { get; set; }
2426

2527
/// <summary>

src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ namespace Stripe
33
using System;
44
using System.Collections.Generic;
55
using Newtonsoft.Json;
6+
using Stripe.Infrastructure;
67

78
public class PaymentIntentCreateOptions : BaseOptions, IHasMetadata
89
{
@@ -87,6 +88,7 @@ public class PaymentIntentCreateOptions : BaseOptions, IHasMetadata
8788
/// charge them later</a>.
8889
/// </summary>
8990
[JsonProperty("off_session")]
91+
[JsonConverter(typeof(AnyOfConverter))]
9092
public AnyOf<bool?, string> OffSession { get; set; }
9193

9294
/// <summary>

src/Stripe.net/Services/Plans/PlanTierOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace Stripe
22
{
33
using Newtonsoft.Json;
4+
using Stripe.Infrastructure;
45

56
public class PlanTierOptions : INestedOptions
67
{
@@ -23,6 +24,7 @@ public class PlanTierOptions : INestedOptions
2324
/// tier.
2425
/// </summary>
2526
[JsonProperty("up_to")]
27+
[JsonConverter(typeof(AnyOfConverter))]
2628
public AnyOf<long?, PlanTierUpTo> UpTo { get; set; }
2729
}
2830
}

src/Stripe.net/Services/Reporting/ReportRuns/ParametersOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ public class ParametersOptions : INestedOptions
1717
public string Currency { get; set; }
1818

1919
[JsonProperty("interval_end")]
20+
[JsonConverter(typeof(DateTimeConverter))]
2021
public DateTime? IntervalEnd { get; set; }
2122

2223
[JsonProperty("interval_start")]
24+
[JsonConverter(typeof(DateTimeConverter))]
2325
public DateTime? IntervalStart { get; set; }
2426

2527
[JsonProperty("payout")]

src/Stripe.net/Services/Sources/SourceMandateAcceptanceOnlineOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace Stripe
77
public class SourceMandateAcceptanceOnlineOptions : INestedOptions
88
{
99
[JsonProperty("date")]
10+
[JsonConverter(typeof(DateTimeConverter))]
1011
public DateTime? Date { get; set; }
1112

1213
[JsonProperty("ip")]

src/Stripe.net/Services/Sources/SourceMandateAcceptanceOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace Stripe
77
public class SourceMandateAcceptanceOptions : INestedOptions
88
{
99
[JsonProperty("date")]
10+
[JsonConverter(typeof(DateTimeConverter))]
1011
public DateTime? Date { get; set; }
1112

1213
[JsonProperty("ip")]

src/Stripe.net/Services/SubscriptionItems/SubscriptionItemSharedOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public abstract class SubscriptionItemSharedOptions : BaseOptions
3232
/// upcoming invoice endpoint.
3333
/// </summary>
3434
[JsonProperty("proration_date")]
35+
[JsonConverter(typeof(DateTimeConverter))]
3536
public DateTime? ProrationDate { get; set; }
3637

3738
/// <summary>

src/Stripe.net/Services/SubscriptionSchedules/SubscriptionScheduleCreateOptions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace Stripe
22
{
33
using System;
4-
using System.Collections.Generic;
54
using Newtonsoft.Json;
65
using Stripe.Infrastructure;
76

@@ -26,6 +25,7 @@ public class SubscriptionScheduleCreateOptions : SubscriptionScheduleSharedOptio
2625
/// The date at which the subscription schedule starts.
2726
/// </summary>
2827
[JsonProperty("start_date")]
28+
[JsonConverter(typeof(DateTimeConverter))]
2929
public DateTime? StartDate { get; set; }
3030
}
3131
}

src/Stripe.net/Services/SubscriptionSchedules/SubscriptionSchedulePhaseOptions.cs

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ namespace Stripe
33
using System;
44
using System.Collections.Generic;
55
using Newtonsoft.Json;
6+
using Stripe.Infrastructure;
67

78
public class SubscriptionSchedulePhaseOptions : INestedOptions
89
{
@@ -32,6 +33,7 @@ public class SubscriptionSchedulePhaseOptions : INestedOptions
3233
/// <c>iterations</c> must not be set.
3334
/// </summary>
3435
[JsonProperty("end_date")]
36+
[JsonConverter(typeof(DateTimeConverter))]
3537
public DateTime? EndDate { get; set; }
3638

3739
/// <summary>
@@ -72,6 +74,7 @@ public class SubscriptionSchedulePhaseOptions : INestedOptions
7274
/// end date, can not be combined with <c>trial</c>.
7375
/// </summary>
7476
[JsonProperty("trial_end")]
77+
[JsonConverter(typeof(DateTimeConverter))]
7578
public DateTime? TrialEnd { get; set; }
7679
}
7780
}

src/Stripe.net/Services/Subscriptions/SubscriptionCreateOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class SubscriptionCreateOptions : SubscriptionSharedOptions
1313
/// date and the current time. Can be combined with trials and the billing cycle anchor.
1414
/// </summary>
1515
[JsonProperty("backdate_start_date")]
16+
[JsonConverter(typeof(DateTimeConverter))]
1617
public DateTime? BackdateStartDate { get; set; }
1718

1819
/// <summary>
@@ -21,6 +22,7 @@ public class SubscriptionCreateOptions : SubscriptionSharedOptions
2122
/// <c>month</c> or <c>year</c> intervals, the day of the month for subsequent invoices.
2223
/// </summary>
2324
[JsonProperty("billing_cycle_anchor")]
25+
[JsonConverter(typeof(DateTimeConverter))]
2426
public DateTime? BillingCycleAnchor { get; set; }
2527

2628
/// <summary>

src/Stripe.net/Services/Subscriptions/SubscriptionSharedOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public abstract class SubscriptionSharedOptions : BaseOptions, IHasMetadata
2424
/// current period ends this will cause a proration if <c>prorate=true</c>.
2525
/// </summary>
2626
[JsonProperty("cancel_at")]
27+
[JsonConverter(typeof(DateTimeConverter))]
2728
public DateTime? CancelAt { get; set; }
2829

2930
/// <summary>
@@ -125,6 +126,7 @@ public abstract class SubscriptionSharedOptions : BaseOptions, IHasMetadata
125126
/// immediately.
126127
/// </summary>
127128
[JsonProperty("trial_end")]
129+
[JsonConverter(typeof(AnyOfConverter))]
128130
public AnyOf<DateTime?, SubscriptionTrialEnd> TrialEnd { get; set; }
129131

130132
/// <summary>

src/Stripe.net/Services/Subscriptions/SubscriptionUpdateOptions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ namespace Stripe
33
using System;
44
using System.Collections.Generic;
55
using Newtonsoft.Json;
6+
using Stripe.Infrastructure;
67

78
public class SubscriptionUpdateOptions : SubscriptionSharedOptions
89
{
@@ -25,6 +26,7 @@ public class SubscriptionUpdateOptions : SubscriptionSharedOptions
2526
/// If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same proration that was previewed with <see href="https://stripe.com/docs/api#upcoming_invoice">upcoming invoice</see> endpoint. It can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations.
2627
/// </summary>
2728
[JsonProperty("proration_date")]
29+
[JsonConverter(typeof(DateTimeConverter))]
2830
public DateTime? ProrationDate { get; set; }
2931
}
3032
}

src/Stripe.net/Services/Tokens/TokenCreateOptions.cs

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class TokenCreateOptions : BaseOptions
2424
/// details.
2525
/// </summary>
2626
[JsonProperty("card")]
27+
[JsonConverter(typeof(AnyOfConverter))]
2728
public AnyOf<string, CreditCardOptions> Card { get; set; }
2829

2930
/// <summary>

src/Stripe.net/Services/UsageRecords/UsageRecordCreateOptions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace Stripe
22
{
33
using System;
4-
using System.Collections.Generic;
54
using Newtonsoft.Json;
65
using Stripe.Infrastructure;
76

@@ -11,6 +10,7 @@ public class UsageRecordCreateOptions : BaseOptions
1110
public string Action { get; set; }
1211

1312
[JsonProperty("timestamp")]
13+
[JsonConverter(typeof(DateTimeConverter))]
1414
public DateTime? Timestamp { get; set; }
1515

1616
[JsonProperty("quantity")]

src/Stripe.net/Services/_common/DateRangeOptions.cs

+5
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,24 @@ namespace Stripe
22
{
33
using System;
44
using Newtonsoft.Json;
5+
using Stripe.Infrastructure;
56

67
public class DateRangeOptions : INestedOptions
78
{
89
[JsonProperty("gt")]
10+
[JsonConverter(typeof(DateTimeConverter))]
911
public DateTime? GreaterThan { get; set; }
1012

1113
[JsonProperty("gte")]
14+
[JsonConverter(typeof(DateTimeConverter))]
1215
public DateTime? GreaterThanOrEqual { get; set; }
1316

1417
[JsonProperty("lt")]
18+
[JsonConverter(typeof(DateTimeConverter))]
1519
public DateTime? LessThan { get; set; }
1620

1721
[JsonProperty("lte")]
22+
[JsonConverter(typeof(DateTimeConverter))]
1823
public DateTime? LessThanOrEqual { get; set; }
1924
}
2025
}

0 commit comments

Comments
 (0)