|
1 | | -using System; |
2 | 1 | using System.Runtime.Serialization; |
3 | 2 | using System.Text.Json; |
4 | 3 | using System.Text.Json.Serialization; |
5 | 4 | using NUnit.Framework; |
6 | 5 | using Vapi.Net.Core; |
7 | 6 |
|
8 | | -namespace Vapi.Net.Test.Core |
9 | | -{ |
10 | | - [TestFixture] |
11 | | - public class StringEnumSerializerTests |
12 | | - { |
13 | | - private static readonly JsonSerializerOptions JsonOptions = new() { WriteIndented = true }; |
| 7 | +namespace Vapi.Net.Test.Core; |
14 | 8 |
|
15 | | - private const DummyEnum KnownEnumValue2 = DummyEnum.KnownValue2; |
16 | | - private const string KnownEnumValue2String = "known_value2"; |
| 9 | +[TestFixture] |
| 10 | +[Parallelizable(ParallelScope.All)] |
| 11 | +public class StringEnumSerializerTests |
| 12 | +{ |
| 13 | + private static readonly JsonSerializerOptions JsonOptions = new() { WriteIndented = true }; |
17 | 14 |
|
18 | | - private static readonly string JsonWithKnownEnum2 = $$""" |
19 | | - { |
20 | | - "enum_property": "{{KnownEnumValue2String}}" |
21 | | - } |
22 | | - """; |
| 15 | + private const DummyEnum KnownEnumValue2 = DummyEnum.KnownValue2; |
| 16 | + private const string KnownEnumValue2String = "known_value2"; |
23 | 17 |
|
24 | | - [Test] |
25 | | - public void ShouldParseKnownEnumValue2() |
| 18 | + private const string JsonWithKnownEnum2 = $$""" |
26 | 19 | { |
27 | | - var obj = JsonSerializer.Deserialize<DummyObject>(JsonWithKnownEnum2, JsonOptions); |
28 | | - Assert.That(obj, Is.Not.Null); |
29 | | - Assert.That(obj.EnumProperty, Is.EqualTo(KnownEnumValue2)); |
| 20 | + "enum_property": "{{KnownEnumValue2String}}" |
30 | 21 | } |
| 22 | + """; |
31 | 23 |
|
32 | | - [Test] |
33 | | - public void ShouldSerializeKnownEnumValue2() |
34 | | - { |
35 | | - var json = JsonSerializer.SerializeToElement( |
36 | | - new DummyObject { EnumProperty = KnownEnumValue2 }, |
37 | | - JsonOptions |
38 | | - ); |
39 | | - TestContext.Out.WriteLine("Serialized JSON: \n" + json); |
40 | | - var enumString = json.GetProperty("enum_property").GetString(); |
41 | | - Assert.That(enumString, Is.Not.Null); |
42 | | - Assert.That(enumString, Is.EqualTo(KnownEnumValue2String)); |
43 | | - } |
| 24 | + [Test] |
| 25 | + public void ShouldParseKnownEnumValue2() |
| 26 | + { |
| 27 | + var obj = JsonSerializer.Deserialize<DummyObject>(JsonWithKnownEnum2, JsonOptions); |
| 28 | + Assert.That(obj, Is.Not.Null); |
| 29 | + Assert.That(obj.EnumProperty, Is.EqualTo(KnownEnumValue2)); |
44 | 30 | } |
45 | 31 |
|
46 | | - public class DummyObject |
| 32 | + [Test] |
| 33 | + public void ShouldSerializeKnownEnumValue2() |
47 | 34 | { |
48 | | - [JsonPropertyName("enum_property")] |
49 | | - public DummyEnum EnumProperty { get; set; } |
| 35 | + var json = JsonSerializer.SerializeToElement( |
| 36 | + new DummyObject { EnumProperty = KnownEnumValue2 }, |
| 37 | + JsonOptions |
| 38 | + ); |
| 39 | + TestContext.Out.WriteLine("Serialized JSON: \n" + json); |
| 40 | + var enumString = json.GetProperty("enum_property").GetString(); |
| 41 | + Assert.That(enumString, Is.Not.Null); |
| 42 | + Assert.That(enumString, Is.EqualTo(KnownEnumValue2String)); |
50 | 43 | } |
| 44 | +} |
51 | 45 |
|
52 | | - [JsonConverter(typeof(EnumSerializer<DummyEnum>))] |
53 | | - public enum DummyEnum |
54 | | - { |
55 | | - [EnumMember(Value = "known_value1")] |
56 | | - KnownValue1, |
| 46 | +public class DummyObject |
| 47 | +{ |
| 48 | + [JsonPropertyName("enum_property")] |
| 49 | + public DummyEnum EnumProperty { get; set; } |
| 50 | +} |
57 | 51 |
|
58 | | - [EnumMember(Value = "known_value2")] |
59 | | - KnownValue2, |
60 | | - } |
| 52 | +[JsonConverter(typeof(EnumSerializer<DummyEnum>))] |
| 53 | +public enum DummyEnum |
| 54 | +{ |
| 55 | + [EnumMember(Value = "known_value1")] |
| 56 | + KnownValue1, |
| 57 | + |
| 58 | + [EnumMember(Value = "known_value2")] |
| 59 | + KnownValue2, |
61 | 60 | } |
0 commit comments