diff --git a/Core/Utils/Json/Converters/EftEnumConverter.cs b/Core/Utils/Json/Converters/EftEnumConverter.cs index 4a649240..eec74024 100644 --- a/Core/Utils/Json/Converters/EftEnumConverter.cs +++ b/Core/Utils/Json/Converters/EftEnumConverter.cs @@ -35,6 +35,6 @@ public class EftEnumConverter : JsonConverter public override void WriteAsPropertyName(Utf8JsonWriter writer, [DisallowNull] T value, JsonSerializerOptions options) { - JsonSerializer.Serialize(writer, value, _options); + writer.WritePropertyName(value.ToString()); } } diff --git a/UnitTests/Tests/Utils/JsonUtilTests.cs b/UnitTests/Tests/Utils/JsonUtilTests.cs new file mode 100644 index 00000000..f7d768e3 --- /dev/null +++ b/UnitTests/Tests/Utils/JsonUtilTests.cs @@ -0,0 +1,19 @@ +using Core.Models.Enums; +using Core.Utils; + +namespace UnitTests.Tests.Utils; + +[TestClass] +public class JsonUtilTests +{ + private readonly JsonUtil _jsonUtil = new(); + [TestMethod] + public void SerializeAndDeserialize_WithDictionaryOfETFEnum_ExpectCorrectParsing() + { + var value = new Dictionary { { QuestStatusEnum.AvailableForStart, 1 } }; + var result = _jsonUtil.Deserialize>(_jsonUtil.Serialize(value)); + Assert.AreEqual(value.Count, result.Count); + Assert.AreEqual(value.First().Key, result.First().Key); + Assert.AreEqual(value.First().Value, result.First().Value); + } +}