Skip to content

Commit c301d04

Browse files
authored
[bug] Fix carrier account parameter serialization for stateless rates (#550)
- Fix carrier account parameter serialization for stateless rates - Update, sync related unit tests - Re-record relevant cassettes
1 parent 4959941 commit c301d04

20 files changed

+531
-263
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# CHANGELOG
22

3+
## Next Release
4+
5+
- Fix serialization bug for carrier accounts parameter on `RetrieveStatelessRates` parameter set
6+
37
## v6.2.0 (2024-02-07)
48

59
- Mark some unused parameters for various `All` functions as obsolete

EasyPost.Tests/ServicesTests/Beta/RateServiceTest.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,33 @@ public RateServiceTests() : base("beta_rate_service")
2222
[Fact]
2323
[CrudOperations.Read]
2424
[Testing.Function]
25-
public async Task TestRetrieve()
25+
public async Task TestRetrieveStatelessRates()
2626
{
27-
UseVCR("retrieve");
27+
UseVCR("retrieve_stateless_rates");
2828

2929
Dictionary<string, object> shipmentData = Fixtures.BasicShipment;
3030

3131
List<StatelessRate> rates = await Client.Beta.Rate.RetrieveStatelessRates(shipmentData);
3232

33-
Assert.IsType<List<StatelessRate>>(rates);
33+
Assert.NotNull(rates);
34+
Assert.NotEmpty(rates);
35+
}
36+
37+
[Fact]
38+
[CrudOperations.Read]
39+
[Testing.Function]
40+
public async Task TestRetrieveStatelessRatesWithCarrierAccount()
41+
{
42+
UseVCR("retrieve_stateless_rates_with_carrier_account");
43+
44+
Dictionary<string, object> shipmentData = Fixtures.BasicShipment;
45+
46+
shipmentData.Add("carrier_accounts", new List<string> { Fixtures.UspsCarrierAccountId });
47+
48+
List<StatelessRate> rates = await Client.Beta.Rate.RetrieveStatelessRates(shipmentData);
49+
50+
Assert.NotNull(rates);
51+
Assert.NotEmpty(rates);
3452
}
3553

3654
#endregion
@@ -47,7 +65,7 @@ public async Task TestGetLowestRateStaticFunction()
4765

4866
StatelessRate lowestStatelessRate = Rates.GetLowestStatelessRate(rates);
4967

50-
Assert.Equal("First", lowestStatelessRate.Service);
68+
Assert.Equal("GroundAdvantage", lowestStatelessRate.Service);
5169
}
5270

5371
[Fact]
@@ -62,7 +80,7 @@ public async Task TestGetLowestRateExtensionFunction()
6280

6381
StatelessRate lowestStatelessRate = rates.GetLowest();
6482

65-
Assert.Equal("First", lowestStatelessRate.Service);
83+
Assert.Equal("GroundAdvantage", lowestStatelessRate.Service);
6684
}
6785

6886
#endregion

EasyPost.Tests/ServicesTests/WithParameters/Beta/RateServiceTest.cs

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using EasyPost.Models.API.Beta;
44
using EasyPost.Tests._Utilities;
55
using EasyPost.Tests._Utilities.Attributes;
6+
using EasyPost.Utilities.Internal.Attributes;
67
using Xunit;
78

89
namespace EasyPost.Tests.ServicesTests.WithParameters.Beta
@@ -17,13 +18,12 @@ public RateServiceTests() : base("beta_rate_service_with_parameters")
1718

1819
#region Test CRUD Operations
1920

20-
#endregion
21-
2221
[Fact]
22+
[CrudOperations.Read]
2323
[Testing.Function]
24-
public async Task TestGetRates()
24+
public async Task TestRetrieveStatelessRates()
2525
{
26-
UseVCR("get_rates");
26+
UseVCR("retrieve_stateless_rates");
2727

2828
Dictionary<string, object> data = Fixtures.BasicShipment;
2929

@@ -35,6 +35,33 @@ public async Task TestGetRates()
3535
Assert.NotEmpty(rates);
3636
}
3737

38+
[Fact]
39+
[CrudOperations.Read]
40+
[Testing.Function]
41+
public async Task TestRetrieveStatelessRatesWithCarrierAccount()
42+
{
43+
UseVCR("retrieve_stateless_rates_with_carrier_account");
44+
45+
Dictionary<string, object> shipmentData = Fixtures.BasicShipment;
46+
47+
Parameters.Beta.Rate.Retrieve parameters = Fixtures.Parameters.Rates.RetrieveBeta(shipmentData);
48+
49+
parameters.CarrierAccounts = new List<Models.API.CarrierAccount>
50+
{
51+
new Models.API.CarrierAccount
52+
{
53+
Id = Fixtures.UspsCarrierAccountId,
54+
}
55+
};
56+
57+
List<StatelessRate> rates = await Client.Beta.Rate.RetrieveStatelessRates(parameters);
58+
59+
Assert.NotNull(rates);
60+
Assert.NotEmpty(rates);
61+
}
62+
63+
#endregion
64+
3865
#endregion
3966
}
4067
}

EasyPost.Tests/cassettes/net/beta_rate_service/get_lowest_rate_extension_function.json

Lines changed: 9 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)