diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index 580d3b4079..62a6e0b6e4 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v1968 \ No newline at end of file +v1968 diff --git a/justfile b/justfile index 871aa51e5a..b891bed6de 100644 --- a/justfile +++ b/justfile @@ -20,7 +20,7 @@ ci-test: (_test "--no-build" "" "Release") # ⭐ format all files format *args: # This sets TargetFramework because of a race condition in dotnet format when it tries to format to multiple targets at a time, which could lead to code with compiler errors after it completes - TargetFramework=net5.0 dotnet format src/Stripe.net/Stripe.net.csproj --severity warn {{args}} + TargetFramework=net5.0 dotnet format src/Stripe.net.sln --severity warn {{args}} # verify, but don't modify, the project's formatting format-check: (format "--verify-no-changes") diff --git a/src/Examples/Program.cs b/src/Examples/Program.cs index 4d0ac5f52d..74514af254 100644 --- a/src/Examples/Program.cs +++ b/src/Examples/Program.cs @@ -27,7 +27,7 @@ public Program() /// are set before running the example. /// /// - /// command line args + /// command line args. /// public static async Task Main(string[] args) { diff --git a/src/Examples/V2/ThinEventWebhookHandler.cs b/src/Examples/V2/ThinEventWebhookHandler.cs index dd4e53f889..dbec0d14dc 100644 --- a/src/Examples/V2/ThinEventWebhookHandler.cs +++ b/src/Examples/V2/ThinEventWebhookHandler.cs @@ -22,15 +22,15 @@ namespace Examples.V2 [ApiController] public class ThinEventWebhookHandler : ControllerBase { - private readonly StripeClient _client; - private readonly string _webhookSecret; + private readonly StripeClient client; + private readonly string webhookSecret; public ThinEventWebhookHandler() { var apiKey = Environment.GetEnvironmentVariable("STRIPE_API_KEY"); - _client = new StripeClient(apiKey); + client = new StripeClient(apiKey); - _webhookSecret = Environment.GetEnvironmentVariable("WEBHOOK_SECRET"); + webhookSecret = Environment.GetEnvironmentVariable("WEBHOOK_SECRET"); } [HttpPost] @@ -39,10 +39,10 @@ public async Task Index() var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync(); try { - var thinEvent = _client.ParseThinEvent(json, Request.Headers["Stripe-Signature"], _webhookSecret); + var thinEvent = client.ParseThinEvent(json, Request.Headers["Stripe-Signature"], webhookSecret); // Fetch the event data to understand the failure - var baseEvent = await _client.V2.Core.Events.GetAsync(thinEvent.Id); + var baseEvent = await client.V2.Core.Events.GetAsync(thinEvent.Id); if (baseEvent is V1BillingMeterErrorReportTriggeredEvent fullEvent) { var meter = await fullEvent.FetchRelatedObjectAsync(); diff --git a/src/StripeTests/Entities/DeserializationTest.cs b/src/StripeTests/Entities/DeserializationTest.cs index 5a6f715a47..62d4dc381b 100644 --- a/src/StripeTests/Entities/DeserializationTest.cs +++ b/src/StripeTests/Entities/DeserializationTest.cs @@ -1,211 +1,211 @@ namespace StripeTests { - using System; - using System.Collections.Generic; - using System.Linq; - using Newtonsoft.Json; - using Stripe; - using Stripe.Infrastructure; - using Xunit; - - public class DeserializationTest : BaseStripeTest - { - [Fact] - public void TestStubWithIdDirect() + using System; + using System.Collections.Generic; + using System.Linq; + using Newtonsoft.Json; + using Stripe; + using Stripe.Infrastructure; + using Xunit; + + public class DeserializationTest : BaseStripeTest { - string json = "{\"some_ref\":{\"id\":\"xyz\"}}"; - var entity = StripeEntity.FromJson(json); - Assert.NotNull(entity); - Assert.IsType(entity); - var id = entity.SomeRef.Id; - Assert.Equal("xyz", id); - } - - [Fact] - public void TestStubWithIdExpanded() - { - string json = "{\"some_expandable\":{\"id\":\"xyz\"}}"; - var entity = StripeEntity.FromJson(json); - Assert.NotNull(entity); - Assert.IsType(entity); - var id = entity.SomeExpandable.Id; - Assert.Equal("xyz", id); - } - - [Fact] - public void TestStubWithIdArrayExpanded() - { - string json = "{\"some_expanded_array\":[{\"id\":\"xyz\"}]}"; - var entity = StripeEntity.FromJson(json); - Assert.NotNull(entity); - Assert.IsType(entity); - var id = entity.SomeExpandedArray[0].Id; - Assert.Equal("xyz", id); - } - - [Fact] - public void TestStubWithIdInArray() - { - string json = "{\"some_ref_array\":[{\"id\":\"xyz\"}]}"; - var entity = StripeEntity.FromJson(json); - Assert.NotNull(entity); - Assert.IsType(entity); - var id = entity.SomeRefArray[0].Id; - Assert.Equal("xyz", id); - } - - [Fact] - public void TestStubWithIdInListObject() - { - string json = "{\"some_list_object\":{\"data\":[{\"id\":\"xyz\"}]}}"; - var entity = StripeEntity.FromJson(json); - Assert.NotNull(entity); - Assert.IsType(entity); - var enumerator = entity.SomeListObject.GetEnumerator(); - enumerator.MoveNext(); - var id = enumerator.Current.Id; - Assert.Equal("xyz", id); - } - - [Fact] - public void TestEmptyObjectDirect() - { - string json = "{\"some_ref\":{}}"; - var entity = JsonConvert.DeserializeObject(json); - var id = entity.SomeRef.Id; - Assert.Null(id); - } - - [Fact] - public void TestEmptyObjectArray() - { - string json = "{\"some_ref_array\":[{}]}"; - var entity = JsonConvert.DeserializeObject(json); - var id = entity.SomeRefArray[0].Id; - Assert.Null(id); - } - - [Fact] - public void TestEmptyObjectExpanded() - { - string json = "{\"some_expandable\":{}}"; - var entity = JsonConvert.DeserializeObject(json); - var id = entity.SomeExpandable.Id; - Assert.Null(id); - } - - [Fact] - public void TestEmptyObjectArrayExpanded() - { - string json = "{\"some_expanded_array\":[{}]}"; - var entity = JsonConvert.DeserializeObject(json); - var id = entity.SomeExpandedArray[0].Id; - Assert.Null(id); - } - - public class MyEntity : StripeEntity, IHasId - { - [JsonProperty("id")] - public string Id { get; set; } - - [JsonProperty("some_integer")] - public long SomeInteger { get; set; } - - [JsonProperty("some_longinteger")] - public long SomeLonginteger { get; set; } - - [JsonProperty("some_boolean")] - public bool SomeBoolean { get; set; } - - [JsonProperty("some_number")] - public decimal SomeNumber { get; set; } - - [JsonProperty("some_decimal_string")] - public decimal SomeDecimalString { get; set; } - - [JsonProperty("some_string")] - public string SomeString { get; set; } - - [JsonProperty("some_datetime")] - [JsonConverter(typeof(UnixDateTimeConverter))] - public DateTime SomeDatetime { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; - - [JsonProperty("some_ref")] - public MyEntity SomeRef { get; set; } - - [JsonProperty("some_literal")] - public string SomeLiteral { get; set; } - - [JsonProperty("some_nullable")] - public string SomeNullable { get; set; } - - [JsonProperty("some_string_array")] - public List SomeStringArray { get; set; } - - [JsonProperty("some_ref_array")] - public List SomeRefArray { get; set; } + [Fact] + public void TestStubWithIdDirect() + { + string json = "{\"some_ref\":{\"id\":\"xyz\"}}"; + var entity = StripeEntity.FromJson(json); + Assert.NotNull(entity); + Assert.IsType(entity); + var id = entity.SomeRef.Id; + Assert.Equal("xyz", id); + } + + [Fact] + public void TestStubWithIdExpanded() + { + string json = "{\"some_expandable\":{\"id\":\"xyz\"}}"; + var entity = StripeEntity.FromJson(json); + Assert.NotNull(entity); + Assert.IsType(entity); + var id = entity.SomeExpandable.Id; + Assert.Equal("xyz", id); + } + + [Fact] + public void TestStubWithIdArrayExpanded() + { + string json = "{\"some_expanded_array\":[{\"id\":\"xyz\"}]}"; + var entity = StripeEntity.FromJson(json); + Assert.NotNull(entity); + Assert.IsType(entity); + var id = entity.SomeExpandedArray[0].Id; + Assert.Equal("xyz", id); + } + + [Fact] + public void TestStubWithIdInArray() + { + string json = "{\"some_ref_array\":[{\"id\":\"xyz\"}]}"; + var entity = StripeEntity.FromJson(json); + Assert.NotNull(entity); + Assert.IsType(entity); + var id = entity.SomeRefArray[0].Id; + Assert.Equal("xyz", id); + } + + [Fact] + public void TestStubWithIdInListObject() + { + string json = "{\"some_list_object\":{\"data\":[{\"id\":\"xyz\"}]}}"; + var entity = StripeEntity.FromJson(json); + Assert.NotNull(entity); + Assert.IsType(entity); + var enumerator = entity.SomeListObject.GetEnumerator(); + enumerator.MoveNext(); + var id = enumerator.Current.Id; + Assert.Equal("xyz", id); + } + + [Fact] + public void TestEmptyObjectDirect() + { + string json = "{\"some_ref\":{}}"; + var entity = JsonConvert.DeserializeObject(json); + var id = entity.SomeRef.Id; + Assert.Null(id); + } + + [Fact] + public void TestEmptyObjectArray() + { + string json = "{\"some_ref_array\":[{}]}"; + var entity = JsonConvert.DeserializeObject(json); + var id = entity.SomeRefArray[0].Id; + Assert.Null(id); + } + + [Fact] + public void TestEmptyObjectExpanded() + { + string json = "{\"some_expandable\":{}}"; + var entity = JsonConvert.DeserializeObject(json); + var id = entity.SomeExpandable.Id; + Assert.Null(id); + } + + [Fact] + public void TestEmptyObjectArrayExpanded() + { + string json = "{\"some_expanded_array\":[{}]}"; + var entity = JsonConvert.DeserializeObject(json); + var id = entity.SomeExpandedArray[0].Id; + Assert.Null(id); + } + + public class MyEntity : StripeEntity, IHasId + { + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("some_integer")] + public long SomeInteger { get; set; } + + [JsonProperty("some_longinteger")] + public long SomeLonginteger { get; set; } + + [JsonProperty("some_boolean")] + public bool SomeBoolean { get; set; } + + [JsonProperty("some_number")] + public decimal SomeNumber { get; set; } + + [JsonProperty("some_decimal_string")] + public decimal SomeDecimalString { get; set; } + + [JsonProperty("some_string")] + public string SomeString { get; set; } + + [JsonProperty("some_datetime")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime SomeDatetime { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + [JsonProperty("some_ref")] + public MyEntity SomeRef { get; set; } + + [JsonProperty("some_literal")] + public string SomeLiteral { get; set; } + + [JsonProperty("some_nullable")] + public string SomeNullable { get; set; } + + [JsonProperty("some_string_array")] + public List SomeStringArray { get; set; } + + [JsonProperty("some_ref_array")] + public List SomeRefArray { get; set; } + + #region Expandable SomeExpandedArray + + [JsonIgnore] + public List SomeExpandedArrayIds + { + get => this.InternalSomeExpandedArray?.Select((x) => x.Id).ToList(); + set => this.InternalSomeExpandedArray = SetExpandableArrayIds(value); + } + + [JsonIgnore] + public List SomeExpandedArray + { + get => this.InternalSomeExpandedArray?.Select((x) => x.ExpandedObject).ToList(); + set => this.InternalSomeExpandedArray = SetExpandableArrayObjects(value); + } + + [JsonProperty("some_expanded_array", ItemConverterType = typeof(ExpandableFieldConverter))] + internal List> InternalSomeExpandedArray { get; set; } + #endregion + + [JsonProperty("some_enum")] + public string SomeEnum { get; set; } + + [JsonProperty("some_map")] + public Dictionary SomeMap { get; set; } + + [JsonProperty("some_object")] + public MyEntitySomeObject SomeObject { get; set; } + + [JsonProperty("some_list_object")] + public StripeList SomeListObject { get; set; } + + #region Expandable SomeExpandable + + [JsonIgnore] + public string SomeExpandableId + { + get => this.InternalSomeExpandable?.Id; + set => this.InternalSomeExpandable = SetExpandableFieldId(value, this.InternalSomeExpandable); + } + + [JsonIgnore] + public MyEntity SomeExpandable + { + get => this.InternalSomeExpandable?.ExpandedObject; + set => this.InternalSomeExpandable = SetExpandableFieldObject(value, this.InternalSomeExpandable); + } - #region Expandable SomeExpandedArray + [JsonProperty("some_expandable")] + [JsonConverter(typeof(ExpandableFieldConverter))] + internal ExpandableField InternalSomeExpandable { get; set; } + #endregion - [JsonIgnore] - public List SomeExpandedArrayIds - { - get => this.InternalSomeExpandedArray?.Select((x) => x.Id).ToList(); - set => this.InternalSomeExpandedArray = SetExpandableArrayIds(value); - } + [JsonProperty("some_polymorphic_group")] + public MyEntity SomePolymorphicGroup { get; set; } + } - [JsonIgnore] - public List SomeExpandedArray - { - get => this.InternalSomeExpandedArray?.Select((x) => x.ExpandedObject).ToList(); - set => this.InternalSomeExpandedArray = SetExpandableArrayObjects(value); - } - - [JsonProperty("some_expanded_array", ItemConverterType = typeof(ExpandableFieldConverter))] - internal List> InternalSomeExpandedArray { get; set; } - #endregion - - [JsonProperty("some_enum")] - public string SomeEnum { get; set; } - - [JsonProperty("some_map")] - public Dictionary SomeMap { get; set; } - - [JsonProperty("some_object")] - public MyEntitySomeObject SomeObject { get; set; } - - [JsonProperty("some_list_object")] - public StripeList SomeListObject { get; set; } - - #region Expandable SomeExpandable - - [JsonIgnore] - public string SomeExpandableId - { - get => this.InternalSomeExpandable?.Id; - set => this.InternalSomeExpandable = SetExpandableFieldId(value, this.InternalSomeExpandable); - } - - [JsonIgnore] - public MyEntity SomeExpandable - { - get => this.InternalSomeExpandable?.ExpandedObject; - set => this.InternalSomeExpandable = SetExpandableFieldObject(value, this.InternalSomeExpandable); - } - - [JsonProperty("some_expandable")] - [JsonConverter(typeof(ExpandableFieldConverter))] - internal ExpandableField InternalSomeExpandable { get; set; } - #endregion - - [JsonProperty("some_polymorphic_group")] - public MyEntity SomePolymorphicGroup { get; set; } - } - - public class MyEntitySomeObject : StripeEntity - { - [JsonProperty("some_string")] - public string SomeString { get; set; } + public class MyEntitySomeObject : StripeEntity + { + [JsonProperty("some_string")] + public string SomeString { get; set; } + } } - } } diff --git a/src/StripeTests/Services/GeneratedExamplesTest.cs b/src/StripeTests/Services/GeneratedExamplesTest.cs index 125a83e341..a91e363ab4 100644 --- a/src/StripeTests/Services/GeneratedExamplesTest.cs +++ b/src/StripeTests/Services/GeneratedExamplesTest.cs @@ -6434,9 +6434,9 @@ public void TestTemporarySessionExpiredError() var exception = Assert.Throws( () => { - var options = new Stripe.V2.Billing.MeterEventStreamCreateOptions - { - Events = new List + var options = new Stripe.V2.Billing.MeterEventStreamCreateOptions + { + Events = new List { new Stripe.V2.Billing.MeterEventStreamCreateEventOptions { @@ -6447,10 +6447,10 @@ public void TestTemporarySessionExpiredError() }, }, }, - }; - var client = new StripeClient(this.Requestor); - var service = client.V2.Billing.MeterEventStream; - service.Create(options); + }; + var client = new StripeClient(this.Requestor); + var service = client.V2.Billing.MeterEventStream; + service.Create(options); }); this.AssertRequest( HttpMethod.Post,