Skip to content

Commit a7cd9c6

Browse files
Updated tests + added test for JsonStringEnumMemberConverter.
1 parent 149a65c commit a7cd9c6

File tree

5 files changed

+91
-19
lines changed

5 files changed

+91
-19
lines changed

ApiClient.Tests/Api/CallRoutingApiTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ public void ShouldUrlDestinationWebhook()
627627
var expectedSipTrunkId = "60d345fd3a799ec";
628628
var expectedValueType = "SIP";
629629
var expectedConnectTimeout = 30;
630-
var expectedRecordingType = CallRoutingRecordingType.Audio;
630+
var expectedRecordingType = "AUDIO";
631631
var expectedType = "ENDPOINT";
632632

633633
var expectedResponse = $@"
@@ -688,7 +688,7 @@ void AssertCallRoutingEndpointDestinationResponse(
688688
Assert.AreEqual(expectedSipTrunkId, callRoutingSipEndpoint.SipTrunkId);
689689

690690
Assert.AreEqual(expectedConnectTimeout, callRoutingEndpointDestinationResponse.ConnectTimeout);
691-
Assert.AreEqual(expectedRecordingType, callRoutingEndpointDestinationResponse.Recording.RecordingType);
691+
Assert.AreEqual(expectedRecordingType, GetEnumAttributeValue(callRoutingEndpointDestinationResponse.Recording.RecordingType));
692692
}
693693

694694
void AssertCallRoutingUrlDestinationHttpRequest(

ApiClient.Tests/Api/NumberMaskingApiTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ public void ShouldNumberMaskingStatusApi()
409409
var givenCurrency = "7e8d64c0-6c72-4922-aa96-48728753c660";
410410
var givenRecordingFileId = "EUR";
411411
var givenRecordingCalleeAnnouncement = true;
412-
var givenRecordingStatus = NumberMaskingRecordingStatus.Sftp;
412+
var givenRecordingStatus = "SFTP";
413413
var givenClientReferenceId = "7e8d64c0-6c72-4922-aa96-48728753c660";
414414

415415
var givenRequest = $@"
@@ -460,7 +460,7 @@ void AssertNumberMaskingStatusRequest(NumberMaskingStatusRequest numberMaskingSt
460460
Assert.AreEqual(givenCurrency, numberMaskingStatusRequest.Currency);
461461
Assert.AreEqual(givenRecordingFileId, numberMaskingStatusRequest.RecordingFileId);
462462
Assert.AreEqual(givenRecordingCalleeAnnouncement, numberMaskingStatusRequest.RecordCalleeAnnouncement);
463-
Assert.AreEqual(givenRecordingStatus, numberMaskingStatusRequest.RecordingStatus);
463+
Assert.AreEqual(givenRecordingStatus, GetEnumAttributeValue(numberMaskingStatusRequest.RecordingStatus!));
464464
Assert.AreEqual(givenClientReferenceId, numberMaskingStatusRequest.ClientReferenceId);
465465
}
466466
}

ApiClient.Tests/Api/SmsApiTest.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1558,12 +1558,12 @@ public void ShouldReceiveOutBoundSmsMessageReport()
15581558
var givenPricePerMessage = 0.01m;
15591559
var givenCurrency = "EUR";
15601560
var givenStatusGroupId = 3;
1561-
var givenStatusGroupName = MessageGeneralStatus.Delivered;
1561+
var givenStatusGroupName = "DELIVERED";
15621562
var givenStatusId = 5;
15631563
var givenStatusName = "DELIVERED_TO_HANDSET";
15641564
var givenStatusDescription = "Message delivered to handset";
15651565
var givenErrorGroupId = 0;
1566-
var givenErrorGroupName = MessageErrorGroup.Ok;
1566+
var givenErrorGroupName = "USER_ERRORS";
15671567
var givenErrorId = 0;
15681568
var givenErrorName = "NO_ERROR";
15691569
var givenErrorDescription = "No Error";
@@ -1582,12 +1582,12 @@ public void ShouldReceiveOutBoundSmsMessageReport()
15821582
var givenSecondPricePerMessage = 0.01m;
15831583
var givenSecondCurrency = "EUR";
15841584
var givenSecondStatusGroupId = 3;
1585-
var givenSecondStatusGroupName = MessageGeneralStatus.Delivered;
1585+
var givenSecondStatusGroupName = "DELIVERED";
15861586
var givenSecondStatusId = 5;
15871587
var givenSecondStatusName = "DELIVERED_TO_HANDSET";
15881588
var givenSecondStatusDescription = "Message delivered to handset";
15891589
var givenSecondErrorGroupId = 0;
1590-
var givenSecondErrorGroupName = MessageErrorGroup.Ok;
1590+
var givenSecondErrorGroupName = "HANDSET_ERRORS";
15911591
var givenSecondErrorId = 0;
15921592
var givenSecondErrorName = "NO_ERROR";
15931593
var givenSecondErrorDescription = "No Error";
@@ -1691,13 +1691,13 @@ void AssertSmsDeliveryResult(SmsDeliveryResult smsDeliveryResult)
16911691
Assert.AreEqual(givenCurrency, smsDeliveryReport.Price.Currency);
16921692

16931693
Assert.AreEqual(givenStatusGroupId, smsDeliveryReport.Status.GroupId);
1694-
Assert.AreEqual(givenStatusGroupName, smsDeliveryReport.Status.GroupName);
1694+
Assert.AreEqual(givenStatusGroupName, GetEnumAttributeValue(smsDeliveryReport.Status.GroupName!));
16951695
Assert.AreEqual(givenStatusId, smsDeliveryReport.Status.Id);
16961696
Assert.AreEqual(givenStatusName, smsDeliveryReport.Status.Name);
16971697
Assert.AreEqual(givenStatusDescription, smsDeliveryReport.Status.Description);
16981698

16991699
Assert.AreEqual(givenErrorGroupId, smsDeliveryReport.Error.GroupId);
1700-
Assert.AreEqual(givenErrorGroupName, smsDeliveryReport.Error.GroupName);
1700+
Assert.AreEqual(givenErrorGroupName, GetEnumAttributeValue(smsDeliveryReport.Error.GroupName!));
17011701
Assert.AreEqual(givenErrorId, smsDeliveryReport.Error.Id);
17021702
Assert.AreEqual(givenErrorName, smsDeliveryReport.Error.Name);
17031703
Assert.AreEqual(givenErrorDescription, smsDeliveryReport.Error.Description);
@@ -1720,13 +1720,13 @@ void AssertSmsDeliveryResult(SmsDeliveryResult smsDeliveryResult)
17201720
Assert.AreEqual(givenSecondCurrency, smsSecondDeliveryReport.Price.Currency);
17211721

17221722
Assert.AreEqual(givenSecondStatusGroupId, smsSecondDeliveryReport.Status.GroupId);
1723-
Assert.AreEqual(givenSecondStatusGroupName, smsSecondDeliveryReport.Status.GroupName);
1723+
Assert.AreEqual(givenSecondStatusGroupName, GetEnumAttributeValue(smsSecondDeliveryReport.Status.GroupName!));
17241724
Assert.AreEqual(givenSecondStatusId, smsSecondDeliveryReport.Status.Id);
17251725
Assert.AreEqual(givenSecondStatusName, smsSecondDeliveryReport.Status.Name);
17261726
Assert.AreEqual(givenSecondStatusDescription, smsSecondDeliveryReport.Status.Description);
17271727

17281728
Assert.AreEqual(givenSecondErrorGroupId, smsSecondDeliveryReport.Error.GroupId);
1729-
Assert.AreEqual(givenSecondErrorGroupName, smsSecondDeliveryReport.Error.GroupName);
1729+
Assert.AreEqual(givenSecondErrorGroupName, GetEnumAttributeValue(smsSecondDeliveryReport.Error.GroupName!));
17301730
Assert.AreEqual(givenSecondErrorId, smsSecondDeliveryReport.Error.Id);
17311731
Assert.AreEqual(givenSecondErrorName, smsSecondDeliveryReport.Error.Name);
17321732
Assert.AreEqual(givenSecondErrorDescription, smsSecondDeliveryReport.Error.Description);

ApiClient.Tests/ClientUtilsTest.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ public void ParameterToStringTest()
2525
var randomNumber = 5;
2626
var randomString = "axT3!er_hOp7&";
2727

28-
Assert.AreEqual(ClientUtils.ParameterToString(dateTime), "2025-12-01T15:30:45.000+00:00");
29-
Assert.AreEqual(ClientUtils.ParameterToString(dateTimeOffset), "2025-12-01T15:30:45.000+00:00");
30-
Assert.AreEqual(ClientUtils.ParameterToString(booleanValue), "true");
31-
Assert.AreEqual(ClientUtils.ParameterToString(list), "1,2,3,4,5,6,7,8,9,10,11,12");
32-
Assert.AreEqual(ClientUtils.ParameterToString(enumValue), "ALSO_OK");
33-
Assert.AreEqual(ClientUtils.ParameterToString(randomNumber), "5");
34-
Assert.AreEqual(ClientUtils.ParameterToString(randomString), "axT3!er_hOp7&");
28+
Assert.AreEqual("2025-12-01T15:30:45.000+00:00", ClientUtils.ParameterToString(dateTime));
29+
Assert.AreEqual( "2025-12-01T15:30:45.000+00:00", ClientUtils.ParameterToString(dateTimeOffset));
30+
Assert.AreEqual("true", ClientUtils.ParameterToString(booleanValue));
31+
Assert.AreEqual("1,2,3,4,5,6,7,8,9,10,11,12", ClientUtils.ParameterToString(list));
32+
Assert.AreEqual("ALSO_OK", ClientUtils.ParameterToString(enumValue));
33+
Assert.AreEqual("5", ClientUtils.ParameterToString(randomNumber));
34+
Assert.AreEqual("axT3!er_hOp7&", ClientUtils.ParameterToString(randomString));
3535
}
3636
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
using System.Runtime.Serialization;
2+
using System.Text.Json;
3+
using Infobip.Api.Client;
4+
5+
namespace ApiClient.Tests;
6+
7+
[TestClass]
8+
public class JsonStringEnumMemberConverterTests
9+
{
10+
public enum TestEnum
11+
{
12+
[EnumMember(Value = "VALUE_A")]
13+
A = 1,
14+
[EnumMember(Value = "VALUE_B")]
15+
B = 2,
16+
C = 3
17+
}
18+
19+
private JsonSerializerOptions _options;
20+
21+
[TestInitialize]
22+
public void Setup()
23+
{
24+
_options = new JsonSerializerOptions();
25+
_options.Converters.Add(new JsonStringEnumMemberConverter<TestEnum>());
26+
}
27+
28+
[TestMethod]
29+
[DataRow("\"VALUE_A\"", TestEnum.A)]
30+
[DataRow("\"VALUE_B\"", TestEnum.B)]
31+
[DataRow("\"C\"", TestEnum.C)]
32+
public void DeserializesProperValues(string json, TestEnum expected)
33+
{
34+
var actual = JsonSerializer.Deserialize<TestEnum>(json, _options);
35+
Assert.AreEqual(expected, actual);
36+
}
37+
38+
[TestMethod]
39+
[DataRow(TestEnum.A, "\"VALUE_A\"")]
40+
[DataRow(TestEnum.B, "\"VALUE_B\"")]
41+
[DataRow(TestEnum.C, "\"C\"")]
42+
public void SerializesProperValues(TestEnum value, string expectedJson)
43+
{
44+
var actualJson = JsonSerializer.Serialize(value, _options);
45+
Assert.AreEqual(expectedJson, actualJson);
46+
}
47+
48+
[TestMethod]
49+
public void DeserializesIgnoresCase()
50+
{
51+
var actual = JsonSerializer.Deserialize<TestEnum>("\"value_b\"", _options);
52+
Assert.AreEqual(TestEnum.B, actual);
53+
}
54+
55+
[TestMethod]
56+
public void DeserializesThrowsOnUnknownValue()
57+
{
58+
Assert.ThrowsExactly<JsonException>(() =>
59+
{
60+
JsonSerializer.Deserialize<TestEnum>("\"does_not_exist\"", _options);
61+
});
62+
}
63+
64+
[TestMethod]
65+
public void DeserializesThrowsOnNonString()
66+
{
67+
Assert.ThrowsExactly<JsonException>(() =>
68+
{
69+
JsonSerializer.Deserialize<TestEnum>("123", _options);
70+
});
71+
}
72+
}

0 commit comments

Comments
 (0)