From 2297033263e37463a41759556e1718087d29265b Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 25 Feb 2019 17:30:20 +0300 Subject: [PATCH] Added HasExtraPropertiesExtensions.RemoveProperty and tests. --- .../Abp/Data/HasExtraPropertiesExtensions.cs | 7 ++++ .../HasExtraPropertiesExtensions_Tests.cs | 33 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HasExtraPropertiesExtensions_Tests.cs diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs index a16373eedc..15915cc94b 100644 --- a/framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs @@ -39,5 +39,12 @@ namespace Volo.Abp.Data source.ExtraProperties[name] = value; return source; } + + public static TSource RemoveProperty(this TSource source, string name) + where TSource : IHasExtraProperties + { + source.ExtraProperties.Remove(name); + return source; + } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HasExtraPropertiesExtensions_Tests.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HasExtraPropertiesExtensions_Tests.cs new file mode 100644 index 0000000000..cc80c24bc0 --- /dev/null +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HasExtraPropertiesExtensions_Tests.cs @@ -0,0 +1,33 @@ +using System; +using Shouldly; +using Volo.Abp.Data; +using Volo.Abp.TestApp.Domain; +using Xunit; + +namespace Volo.Abp.TestApp.Testing +{ + public class HasExtraPropertiesExtensions_Tests + { + [Fact] + public void Basic_Tests() + { + var city = new City(Guid.NewGuid(), "Adana"); + + city.HasProperty("UnknownProperty").ShouldBeFalse(); + city.GetProperty("UnknownProperty").ShouldBeNull(); + city.GetProperty("UnknownProperty").ShouldBe(0); + + city.SetProperty("IsHot", true); + city.HasProperty("IsHot").ShouldBeTrue(); + city.GetProperty("IsHot").ShouldBeTrue(); + + city.SetProperty("IsHot", false); + city.HasProperty("IsHot").ShouldBeTrue(); + city.GetProperty("IsHot").ShouldBeFalse(); + + city.RemoveProperty("IsHot"); + city.HasProperty("IsHot").ShouldBeFalse(); + city.GetProperty("IsHot").ShouldBeFalse(); + } + } +} \ No newline at end of file