From 6d2d2643f339fb5407f92b90acd4079b374d26a6 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 29 Nov 2021 17:33:34 +0800 Subject: [PATCH] Add some unit tests. --- .../Volo/Abp/Json/AbpStringToBoolean_Tests.cs | 54 ++++++++++++++++++ .../Volo/Abp/Json/AbpStringToEnum_Tests.cs | 55 +++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToBoolean_Tests.cs create mode 100644 framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs diff --git a/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToBoolean_Tests.cs b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToBoolean_Tests.cs new file mode 100644 index 0000000000..a013532e7a --- /dev/null +++ b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToBoolean_Tests.cs @@ -0,0 +1,54 @@ +using System.Text.Json; +using Shouldly; +using Volo.Abp.Json.SystemTextJson.JsonConverters; +using Xunit; + +namespace Volo.Abp.Json +{ + public class AbpStringToBoolean_Tests + { + [Fact] + public void Test_Read() + { + var options = new JsonSerializerOptions() + { + Converters = + { + new AbpStringToBooleanConverter() + } + }; + + var testClass = JsonSerializer.Deserialize("{\"Enabled\": \"TrUe\"}", options); + testClass.ShouldNotBeNull(); + testClass.Enabled.ShouldBe(true); + + testClass = JsonSerializer.Deserialize("{\"Enabled\": true}", options); + testClass.ShouldNotBeNull(); + testClass.Enabled.ShouldBe(true); + } + + [Fact] + public void Test_Write() + { + var options = new JsonSerializerOptions() + { + Converters = + { + new AbpStringToEnumFactory() + } + }; + + var testClassJson = JsonSerializer.Serialize(new TestClass() + { + Enabled = true + }); + + testClassJson.ShouldBe("{\"Enabled\":true}"); + } + + class TestClass + { + public bool Enabled { get; set; } + } + } +} diff --git a/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs new file mode 100644 index 0000000000..b7aa4de550 --- /dev/null +++ b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs @@ -0,0 +1,55 @@ +using System; +using System.Text.Json; +using Shouldly; +using Volo.Abp.Json.SystemTextJson.JsonConverters; +using Xunit; + +namespace Volo.Abp.Json +{ + public class AbpStringToEnum_Tests + { + [Fact] + public void Test_Read() + { + var options = new JsonSerializerOptions() + { + Converters = + { + new AbpStringToEnumFactory() + } + }; + + var testClass = JsonSerializer.Deserialize("{\"Day\": \"Monday\"}", options); + testClass.ShouldNotBeNull(); + testClass.Day.ShouldBe(DayOfWeek.Monday); + + testClass = JsonSerializer.Deserialize("{\"Day\": 1}", options); + testClass.ShouldNotBeNull(); + testClass.Day.ShouldBe(DayOfWeek.Monday); + } + + [Fact] + public void Test_Write() + { + var options = new JsonSerializerOptions() + { + Converters = + { + new AbpStringToEnumFactory() + } + }; + + var testClassJson = JsonSerializer.Serialize(new TestClass() + { + Day = DayOfWeek.Monday + }); + + testClassJson.ShouldBe("{\"Day\":1}"); + } + + class TestClass + { + public DayOfWeek Day { get; set; } + } + } +}