Skip to content

Commit d3ac700

Browse files
test(client): url generation
1 parent 4ce8acd commit d3ac700

File tree

117 files changed

+2540
-386
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+2540
-386
lines changed

src/Orb.Tests/Models/Alerts/AlertCreateForCustomerParamsTest.cs

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
using System;
12
using System.Collections.Generic;
23
using System.Text.Json;
34
using Orb.Core;
45
using Orb.Exceptions;
5-
using Orb.Models.Alerts;
6+
using Alerts = Orb.Models.Alerts;
67

78
namespace Orb.Tests.Models.Alerts;
89

@@ -11,18 +12,18 @@ public class AlertCreateForCustomerParamsTest : TestBase
1112
[Fact]
1213
public void FieldRoundtrip_Works()
1314
{
14-
var parameters = new AlertCreateForCustomerParams
15+
var parameters = new Alerts::AlertCreateForCustomerParams
1516
{
1617
CustomerID = "customer_id",
1718
Currency = "currency",
18-
Type = Type.CreditBalanceDepleted,
19+
Type = Alerts::Type.CreditBalanceDepleted,
1920
Thresholds = [new(0)],
2021
};
2122

2223
string expectedCustomerID = "customer_id";
2324
string expectedCurrency = "currency";
24-
ApiEnum<string, Type> expectedType = Type.CreditBalanceDepleted;
25-
List<Threshold> expectedThresholds = [new(0)];
25+
ApiEnum<string, Alerts::Type> expectedType = Alerts::Type.CreditBalanceDepleted;
26+
List<Alerts::Threshold> expectedThresholds = [new(0)];
2627

2728
Assert.Equal(expectedCustomerID, parameters.CustomerID);
2829
Assert.Equal(expectedCurrency, parameters.Currency);
@@ -38,11 +39,11 @@ public void FieldRoundtrip_Works()
3839
[Fact]
3940
public void OptionalNullableParamsUnsetAreNotSet_Works()
4041
{
41-
var parameters = new AlertCreateForCustomerParams
42+
var parameters = new Alerts::AlertCreateForCustomerParams
4243
{
4344
CustomerID = "customer_id",
4445
Currency = "currency",
45-
Type = Type.CreditBalanceDepleted,
46+
Type = Alerts::Type.CreditBalanceDepleted,
4647
};
4748

4849
Assert.Null(parameters.Thresholds);
@@ -52,37 +53,52 @@ public void OptionalNullableParamsUnsetAreNotSet_Works()
5253
[Fact]
5354
public void OptionalNullableParamsSetToNullAreSetToNull_Works()
5455
{
55-
var parameters = new AlertCreateForCustomerParams
56+
var parameters = new Alerts::AlertCreateForCustomerParams
5657
{
5758
CustomerID = "customer_id",
5859
Currency = "currency",
59-
Type = Type.CreditBalanceDepleted,
60+
Type = Alerts::Type.CreditBalanceDepleted,
6061

6162
Thresholds = null,
6263
};
6364

6465
Assert.Null(parameters.Thresholds);
65-
Assert.False(parameters.RawBodyData.ContainsKey("thresholds"));
66+
Assert.True(parameters.RawBodyData.ContainsKey("thresholds"));
67+
}
68+
69+
[Fact]
70+
public void Url_Works()
71+
{
72+
Alerts::AlertCreateForCustomerParams parameters = new()
73+
{
74+
CustomerID = "customer_id",
75+
Currency = "currency",
76+
Type = Alerts::Type.CreditBalanceDepleted,
77+
};
78+
79+
var url = parameters.Url(new() { APIKey = "My API Key" });
80+
81+
Assert.Equal(new Uri("https://api.withorb.com/v1/alerts/customer_id/customer_id"), url);
6682
}
6783
}
6884

6985
public class TypeTest : TestBase
7086
{
7187
[Theory]
72-
[InlineData(Type.CreditBalanceDepleted)]
73-
[InlineData(Type.CreditBalanceDropped)]
74-
[InlineData(Type.CreditBalanceRecovered)]
75-
public void Validation_Works(Type rawValue)
88+
[InlineData(Alerts::Type.CreditBalanceDepleted)]
89+
[InlineData(Alerts::Type.CreditBalanceDropped)]
90+
[InlineData(Alerts::Type.CreditBalanceRecovered)]
91+
public void Validation_Works(Alerts::Type rawValue)
7692
{
7793
// force implicit conversion because Theory can't do that for us
78-
ApiEnum<string, Type> value = rawValue;
94+
ApiEnum<string, Alerts::Type> value = rawValue;
7995
value.Validate();
8096
}
8197

8298
[Fact]
8399
public void InvalidEnumValidationThrows_Works()
84100
{
85-
var value = JsonSerializer.Deserialize<ApiEnum<string, Type>>(
101+
var value = JsonSerializer.Deserialize<ApiEnum<string, Alerts::Type>>(
86102
JsonSerializer.Deserialize<JsonElement>("\"invalid value\""),
87103
ModelBase.SerializerOptions
88104
);
@@ -92,16 +108,16 @@ public void InvalidEnumValidationThrows_Works()
92108
}
93109

94110
[Theory]
95-
[InlineData(Type.CreditBalanceDepleted)]
96-
[InlineData(Type.CreditBalanceDropped)]
97-
[InlineData(Type.CreditBalanceRecovered)]
98-
public void SerializationRoundtrip_Works(Type rawValue)
111+
[InlineData(Alerts::Type.CreditBalanceDepleted)]
112+
[InlineData(Alerts::Type.CreditBalanceDropped)]
113+
[InlineData(Alerts::Type.CreditBalanceRecovered)]
114+
public void SerializationRoundtrip_Works(Alerts::Type rawValue)
99115
{
100116
// force implicit conversion because Theory can't do that for us
101-
ApiEnum<string, Type> value = rawValue;
117+
ApiEnum<string, Alerts::Type> value = rawValue;
102118

103119
string json = JsonSerializer.Serialize(value, ModelBase.SerializerOptions);
104-
var deserialized = JsonSerializer.Deserialize<ApiEnum<string, Type>>(
120+
var deserialized = JsonSerializer.Deserialize<ApiEnum<string, Alerts::Type>>(
105121
json,
106122
ModelBase.SerializerOptions
107123
);
@@ -112,12 +128,12 @@ public void SerializationRoundtrip_Works(Type rawValue)
112128
[Fact]
113129
public void InvalidEnumSerializationRoundtrip_Works()
114130
{
115-
var value = JsonSerializer.Deserialize<ApiEnum<string, Type>>(
131+
var value = JsonSerializer.Deserialize<ApiEnum<string, Alerts::Type>>(
116132
JsonSerializer.Deserialize<JsonElement>("\"invalid value\""),
117133
ModelBase.SerializerOptions
118134
);
119135
string json = JsonSerializer.Serialize(value, ModelBase.SerializerOptions);
120-
var deserialized = JsonSerializer.Deserialize<ApiEnum<string, Type>>(
136+
var deserialized = JsonSerializer.Deserialize<ApiEnum<string, Alerts::Type>>(
121137
json,
122138
ModelBase.SerializerOptions
123139
);

src/Orb.Tests/Models/Alerts/AlertCreateForExternalCustomerParamsTest.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Collections.Generic;
23
using System.Text.Json;
34
using Orb.Core;
@@ -63,7 +64,25 @@ public void OptionalNullableParamsSetToNullAreSetToNull_Works()
6364
};
6465

6566
Assert.Null(parameters.Thresholds);
66-
Assert.False(parameters.RawBodyData.ContainsKey("thresholds"));
67+
Assert.True(parameters.RawBodyData.ContainsKey("thresholds"));
68+
}
69+
70+
[Fact]
71+
public void Url_Works()
72+
{
73+
AlertCreateForExternalCustomerParams parameters = new()
74+
{
75+
ExternalCustomerID = "external_customer_id",
76+
Currency = "currency",
77+
Type = AlertCreateForExternalCustomerParamsType.CreditBalanceDepleted,
78+
};
79+
80+
var url = parameters.Url(new() { APIKey = "My API Key" });
81+
82+
Assert.Equal(
83+
new Uri("https://api.withorb.com/v1/alerts/external_customer_id/external_customer_id"),
84+
url
85+
);
6786
}
6887
}
6988

src/Orb.Tests/Models/Alerts/AlertCreateForSubscriptionParamsTest.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Collections.Generic;
23
using System.Text.Json;
34
using Orb.Core;
@@ -62,7 +63,25 @@ public void OptionalNullableParamsSetToNullAreSetToNull_Works()
6263
};
6364

6465
Assert.Null(parameters.MetricID);
65-
Assert.False(parameters.RawBodyData.ContainsKey("metric_id"));
66+
Assert.True(parameters.RawBodyData.ContainsKey("metric_id"));
67+
}
68+
69+
[Fact]
70+
public void Url_Works()
71+
{
72+
AlertCreateForSubscriptionParams parameters = new()
73+
{
74+
SubscriptionID = "subscription_id",
75+
Thresholds = [new(0)],
76+
Type = AlertCreateForSubscriptionParamsType.UsageExceeded,
77+
};
78+
79+
var url = parameters.Url(new() { APIKey = "My API Key" });
80+
81+
Assert.Equal(
82+
new Uri("https://api.withorb.com/v1/alerts/subscription_id/subscription_id"),
83+
url
84+
);
6685
}
6786
}
6887

src/Orb.Tests/Models/Alerts/AlertDisableParamsTest.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using Orb.Models.Alerts;
23

34
namespace Orb.Tests.Models.Alerts;
@@ -40,6 +41,25 @@ public void OptionalNullableParamsSetToNullAreSetToNull_Works()
4041
};
4142

4243
Assert.Null(parameters.SubscriptionID);
43-
Assert.False(parameters.RawQueryData.ContainsKey("subscription_id"));
44+
Assert.True(parameters.RawQueryData.ContainsKey("subscription_id"));
45+
}
46+
47+
[Fact]
48+
public void Url_Works()
49+
{
50+
AlertDisableParams parameters = new()
51+
{
52+
AlertConfigurationID = "alert_configuration_id",
53+
SubscriptionID = "subscription_id",
54+
};
55+
56+
var url = parameters.Url(new() { APIKey = "My API Key" });
57+
58+
Assert.Equal(
59+
new Uri(
60+
"https://api.withorb.com/v1/alerts/alert_configuration_id/disable?subscription_id=subscription_id"
61+
),
62+
url
63+
);
4464
}
4565
}

src/Orb.Tests/Models/Alerts/AlertEnableParamsTest.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using Orb.Models.Alerts;
23

34
namespace Orb.Tests.Models.Alerts;
@@ -40,6 +41,25 @@ public void OptionalNullableParamsSetToNullAreSetToNull_Works()
4041
};
4142

4243
Assert.Null(parameters.SubscriptionID);
43-
Assert.False(parameters.RawQueryData.ContainsKey("subscription_id"));
44+
Assert.True(parameters.RawQueryData.ContainsKey("subscription_id"));
45+
}
46+
47+
[Fact]
48+
public void Url_Works()
49+
{
50+
AlertEnableParams parameters = new()
51+
{
52+
AlertConfigurationID = "alert_configuration_id",
53+
SubscriptionID = "subscription_id",
54+
};
55+
56+
var url = parameters.Url(new() { APIKey = "My API Key" });
57+
58+
Assert.Equal(
59+
new Uri(
60+
"https://api.withorb.com/v1/alerts/alert_configuration_id/enable?subscription_id=subscription_id"
61+
),
62+
url
63+
);
4464
}
4565
}

src/Orb.Tests/Models/Alerts/AlertListParamsTest.cs

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,20 +124,46 @@ public void OptionalNullableParamsSetToNullAreSetToNull_Works()
124124
};
125125

126126
Assert.Null(parameters.CreatedAtGt);
127-
Assert.False(parameters.RawQueryData.ContainsKey("created_at[gt]"));
127+
Assert.True(parameters.RawQueryData.ContainsKey("created_at[gt]"));
128128
Assert.Null(parameters.CreatedAtGte);
129-
Assert.False(parameters.RawQueryData.ContainsKey("created_at[gte]"));
129+
Assert.True(parameters.RawQueryData.ContainsKey("created_at[gte]"));
130130
Assert.Null(parameters.CreatedAtLt);
131-
Assert.False(parameters.RawQueryData.ContainsKey("created_at[lt]"));
131+
Assert.True(parameters.RawQueryData.ContainsKey("created_at[lt]"));
132132
Assert.Null(parameters.CreatedAtLte);
133-
Assert.False(parameters.RawQueryData.ContainsKey("created_at[lte]"));
133+
Assert.True(parameters.RawQueryData.ContainsKey("created_at[lte]"));
134134
Assert.Null(parameters.Cursor);
135-
Assert.False(parameters.RawQueryData.ContainsKey("cursor"));
135+
Assert.True(parameters.RawQueryData.ContainsKey("cursor"));
136136
Assert.Null(parameters.CustomerID);
137-
Assert.False(parameters.RawQueryData.ContainsKey("customer_id"));
137+
Assert.True(parameters.RawQueryData.ContainsKey("customer_id"));
138138
Assert.Null(parameters.ExternalCustomerID);
139-
Assert.False(parameters.RawQueryData.ContainsKey("external_customer_id"));
139+
Assert.True(parameters.RawQueryData.ContainsKey("external_customer_id"));
140140
Assert.Null(parameters.SubscriptionID);
141-
Assert.False(parameters.RawQueryData.ContainsKey("subscription_id"));
141+
Assert.True(parameters.RawQueryData.ContainsKey("subscription_id"));
142+
}
143+
144+
[Fact]
145+
public void Url_Works()
146+
{
147+
AlertListParams parameters = new()
148+
{
149+
CreatedAtGt = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z"),
150+
CreatedAtGte = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z"),
151+
CreatedAtLt = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z"),
152+
CreatedAtLte = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z"),
153+
Cursor = "cursor",
154+
CustomerID = "customer_id",
155+
ExternalCustomerID = "external_customer_id",
156+
Limit = 1,
157+
SubscriptionID = "subscription_id",
158+
};
159+
160+
var url = parameters.Url(new() { APIKey = "My API Key" });
161+
162+
Assert.Equal(
163+
new Uri(
164+
"https://api.withorb.com/v1/alerts?created_at%5bgt%5d=2019-12-27T18%3a11%3a19.117Z&created_at%5bgte%5d=2019-12-27T18%3a11%3a19.117Z&created_at%5blt%5d=2019-12-27T18%3a11%3a19.117Z&created_at%5blte%5d=2019-12-27T18%3a11%3a19.117Z&cursor=cursor&customer_id=customer_id&external_customer_id=external_customer_id&limit=1&subscription_id=subscription_id"
165+
),
166+
url
167+
);
142168
}
143169
}

src/Orb.Tests/Models/Alerts/AlertRetrieveParamsTest.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using Orb.Models.Alerts;
23

34
namespace Orb.Tests.Models.Alerts;
@@ -13,4 +14,14 @@ public void FieldRoundtrip_Works()
1314

1415
Assert.Equal(expectedAlertID, parameters.AlertID);
1516
}
17+
18+
[Fact]
19+
public void Url_Works()
20+
{
21+
AlertRetrieveParams parameters = new() { AlertID = "alert_id" };
22+
23+
var url = parameters.Url(new() { APIKey = "My API Key" });
24+
25+
Assert.Equal(new Uri("https://api.withorb.com/v1/alerts/alert_id"), url);
26+
}
1627
}

src/Orb.Tests/Models/Alerts/AlertUpdateParamsTest.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Collections.Generic;
23
using Orb.Models.Alerts;
34

@@ -24,4 +25,18 @@ public void FieldRoundtrip_Works()
2425
Assert.Equal(expectedThresholds[i], parameters.Thresholds[i]);
2526
}
2627
}
28+
29+
[Fact]
30+
public void Url_Works()
31+
{
32+
AlertUpdateParams parameters = new()
33+
{
34+
AlertConfigurationID = "alert_configuration_id",
35+
Thresholds = [new(0)],
36+
};
37+
38+
var url = parameters.Url(new() { APIKey = "My API Key" });
39+
40+
Assert.Equal(new Uri("https://api.withorb.com/v1/alerts/alert_configuration_id"), url);
41+
}
2742
}

0 commit comments

Comments
 (0)