diff --git a/BO4E/COM/Verwendungszweck.cs b/BO4E/COM/Verwendungszweck.cs index 3c3694e9..f224dff5 100644 --- a/BO4E/COM/Verwendungszweck.cs +++ b/BO4E/COM/Verwendungszweck.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Text.Json.Serialization; using BO4E.meta; +using BO4E.meta.LenientConverters; using Newtonsoft.Json; using ProtoBuf; @@ -11,6 +12,8 @@ namespace BO4E.COM; /// [ProtoContract] [NonOfficial(NonOfficialCategory.REGULATORY_REQUIREMENTS)] +[System.Text.Json.Serialization.JsonConverter(typeof(SystemTextVerwendungszweckEnumToComConverter))] +[Newtonsoft.Json.JsonConverter(typeof(NewtonsoftVerwendungszweckEnumToComConverter))] public class Verwendungszweck : COM { /// diff --git a/BO4ETestProject/TestStringEnumConverter.cs b/BO4ETestProject/TestStringEnumConverter.cs index 28f7a620..11aa0066 100644 --- a/BO4ETestProject/TestStringEnumConverter.cs +++ b/BO4ETestProject/TestStringEnumConverter.cs @@ -763,4 +763,40 @@ string jsonString var reSerializedJsonString = System.Text.Json.JsonSerializer.Serialize(result); reSerializedJsonString.Should().Contain("MEHRMINDERMENGENABRECHNUNG"); } + + [TestMethod] + [DataRow("{\"verwendungszwecke\": [{\"zwecke\":\"MEHRMINDERMENGENABRECHNUNG\"}]")] + public void Test_STJ_VerwendungszweckEnum_To_COM_Converter_With_Annotated_Property_At_Zaehlwerk( + string jsonString + ) + { + var result = System.Text.Json.JsonSerializer.Deserialize(jsonString); + result + .Should() + .NotBeNull() + .And.Subject.As() + .Verwendungszwecke?.Should() + .NotBeNull() + .And.ContainEquivalentOf(BO4E.ENUM.Verwendungszweck.MEHRMINDERMENGENABRECHNUNG); + var reSerializedJsonString = System.Text.Json.JsonSerializer.Serialize(result); + reSerializedJsonString.Should().Contain("MEHRMINDERMENGENABRECHNUNG"); + } + + [TestMethod] + [DataRow("{\"verwendungszwecke\": [{\"zwecke\":\"MEHRMINDERMENGENABRECHNUNG\"}]")] + public void Test_Newtonsoft_VerwendungszweckEnum_To_COM_Converter_With_Annotated_Property_At_Zaehlwerk( + string jsonString + ) + { + var result = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString); + result + .Should() + .NotBeNull() + .And.Subject.As() + .Verwendungszwecke?.Should() + .NotBeNull() + .And.ContainEquivalentOf(BO4E.ENUM.Verwendungszweck.MEHRMINDERMENGENABRECHNUNG); + var reSerializedJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(result); + reSerializedJsonString.Should().Contain("MEHRMINDERMENGENABRECHNUNG"); + } }