Skip to content

Commit add9b4f

Browse files
committed
write tests to verify shipments paging
1 parent e25fcd1 commit add9b4f

File tree

1 file changed

+36
-24
lines changed

1 file changed

+36
-24
lines changed

ShippoTests/Integration/TestShipments.cs

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
namespace ShippoTests.Integration;
22

3+
using System.Text.RegularExpressions;
34
using Parcels = Shippo.Models.Components.Parcels;
5+
using ListShipmentsRequest = Shippo.Models.Requests.ListShipmentsRequest;
6+
using ShipmentPaginatedList = Shippo.Models.Components.ShipmentPaginatedList;
47

58
[Collection("Integration")]
69
public class ShipmentsTest
@@ -107,63 +110,72 @@ public async void TestInternationalShipment()
107110
}
108111

109112
[Fact]
110-
public void TestListAllShipments()
113+
public async void TestListAllShipments()
111114
{
112-
var request = new ListShipmentsRequest();
113-
var response = _api.Shipments.List(request);
115+
ListShipmentsRequest request = new ListShipmentsRequest() {};
116+
ShipmentPaginatedList response = await sdkFixture.SDK.Shipments.ListAsync(request);
114117

115-
Assert.IsNotNull(response);
116-
Assert.IsInstanceOf<ShipmentPaginatedList>(response);
117-
118-
AssertShipmentResults(response.Results);
118+
response.Should().NotBeNull();
119+
response.Results.Should().NotBeNull();
120+
121+
if (response.Results != null)
122+
{
123+
AssertShipmentResults(response.Results);
124+
}
119125
}
120126

121127
[Fact]
122-
public void TestListAllShipmentsPagination()
128+
public async void TestListAllShipmentsPagination()
123129
{
124-
var request = new ListShipmentsRequest
130+
ListShipmentsRequest request = new ListShipmentsRequest
125131
{
126132
Page = 1,
127133
Results = 2
128134
};
129-
var response = _api.Shipments.List(request);
135+
ShipmentPaginatedList response = await sdkFixture.SDK.Shipments.ListAsync(request);
130136

131-
Assert.IsNotNull(response);
132-
Assert.IsInstanceOf<ShipmentPaginatedList>(response);
137+
response.Should().NotBeNull();
138+
response.Results.Should().NotBeNull();
133139

134-
AssertShipmentResults(response.Results);
140+
if (response.Results != null)
141+
{
142+
AssertShipmentResults(response.Results);
143+
}
135144

136145
if (!string.IsNullOrEmpty(response.Next))
137146
{
138147
var match = Regex.Match(response.Next, @"page_token=([^&]+)");
139148
if (match.Success)
140149
{
141-
var pageToken = match.Groups[1].Value;
142-
var secondRequest = new ListShipmentsRequest
150+
string pageToken = match.Groups[1].Value;
151+
ListShipmentsRequest secondRequest = new ListShipmentsRequest
143152
{
144153
PageToken = pageToken,
145154
Page = 2,
146155
Results = 2
147156
};
148-
var secondResponse = _api.Shipments.List(secondRequest);
157+
ShipmentPaginatedList secondResponse = await sdkFixture.SDK.Shipments.ListAsync(secondRequest);
158+
159+
secondResponse.Should().NotBeNull();
160+
secondResponse.Results.Should().NotBeNull();
149161

150-
Assert.IsNotNull(secondResponse);
151-
Assert.IsInstanceOf<ShipmentPaginatedList>(secondResponse);
152-
AssertShipmentResults(secondResponse.Results);
162+
if (secondResponse.Results != null)
163+
{
164+
AssertShipmentResults(secondResponse.Results);
165+
}
153166
}
154167
}
155168
}
156169

157170
private void AssertShipmentResults(List<Shipment> results)
158171
{
159-
Assert.IsInstanceOf<List<Shipment>>(results);
160172
if (results != null && results.Count > 0)
161173
{
162-
foreach (var result in results)
174+
foreach (Shipment result in results)
163175
{
164-
Assert.IsNotNull(result.ObjectId);
165-
Assert.IsNotNull(result.AddressFrom);
166-
Assert.IsNotNull(result.AddressTo);
176+
result.ObjectId.Should().NotBeNull();
177+
result.AddressFrom.Should().NotBeNull();
178+
result.AddressTo.Should().NotBeNull();
167179
}
168180
}
169181
}

0 commit comments

Comments
 (0)