diff --git a/src/Riok.Mapperly.Abstractions/IgnoreObsoleteStrategy.cs b/src/Riok.Mapperly.Abstractions/IgnoreObsoleteMembersStrategy.cs similarity index 75% rename from src/Riok.Mapperly.Abstractions/IgnoreObsoleteStrategy.cs rename to src/Riok.Mapperly.Abstractions/IgnoreObsoleteMembersStrategy.cs index 4beb63fcc5..f4daa4dd07 100644 --- a/src/Riok.Mapperly.Abstractions/IgnoreObsoleteStrategy.cs +++ b/src/Riok.Mapperly.Abstractions/IgnoreObsoleteMembersStrategy.cs @@ -1,7 +1,7 @@ namespace Riok.Mapperly.Abstractions; [Flags] -public enum IgnoreObsoleteStrategy +public enum IgnoreObsoleteMembersStrategy { None = 0, Both = ~None, diff --git a/src/Riok.Mapperly.Abstractions/MapperAttribute.cs b/src/Riok.Mapperly.Abstractions/MapperAttribute.cs index 4c873b46af..4d65c874fa 100644 --- a/src/Riok.Mapperly.Abstractions/MapperAttribute.cs +++ b/src/Riok.Mapperly.Abstractions/MapperAttribute.cs @@ -72,7 +72,7 @@ public sealed class MapperAttribute : Attribute public bool UseReferenceHandling { get; set; } /// - /// Sets the ingore Obsolete attribute strategy. + /// Sets the ignore Obsolete attribute strategy. /// - public IgnoreObsoleteStrategy IgnoreObsoleteStrategy { get; set; } = IgnoreObsoleteStrategy.None; + public IgnoreObsoleteMembersStrategy IgnoreObsoleteMembersStrategy { get; set; } = IgnoreObsoleteMembersStrategy.None; } diff --git a/src/Riok.Mapperly.Abstractions/MapperIgnoreObsoleteMembersAttribute.cs b/src/Riok.Mapperly.Abstractions/MapperIgnoreObsoleteMembersAttribute.cs index 1392ed33b2..31fa582d79 100644 --- a/src/Riok.Mapperly.Abstractions/MapperIgnoreObsoleteMembersAttribute.cs +++ b/src/Riok.Mapperly.Abstractions/MapperIgnoreObsoleteMembersAttribute.cs @@ -3,13 +3,13 @@ /// /// Specifies options for obsolete ignoring strategy. /// -[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] +[AttributeUsage(AttributeTargets.Method)] public sealed class MapperIgnoreObsoleteMembersAttribute : Attribute { - public MapperIgnoreObsoleteMembersAttribute(IgnoreObsoleteStrategy ignoreObsoleteStrategy = IgnoreObsoleteStrategy.Both) + public MapperIgnoreObsoleteMembersAttribute(IgnoreObsoleteMembersStrategy ignoreObsoleteStrategy = IgnoreObsoleteMembersStrategy.Both) { IgnoreObsoleteStrategy = ignoreObsoleteStrategy; } - public IgnoreObsoleteStrategy IgnoreObsoleteStrategy { get; } + public IgnoreObsoleteMembersStrategy IgnoreObsoleteStrategy { get; } } diff --git a/test/Riok.Mapperly.Tests/Mapping/IgnoreObsoleteTest.cs b/test/Riok.Mapperly.Tests/Mapping/IgnoreObsoleteTest.cs index a93ff5c371..f94f562ecf 100644 --- a/test/Riok.Mapperly.Tests/Mapping/IgnoreObsoleteTest.cs +++ b/test/Riok.Mapperly.Tests/Mapping/IgnoreObsoleteTest.cs @@ -5,7 +5,7 @@ namespace Riok.Mapperly.Tests.Mapping; public class IgnoreObsoleteTest { - private readonly string _classA = """ + private const string _classA = """ class A { public int Value { get; set;} @@ -15,7 +15,7 @@ class A } """; - private readonly string _classB = """ + private const string _classB = """ class B { public int Value { get; set;} @@ -31,7 +31,7 @@ public void ClassAttributeIgnoreObsoleteNone() var source = TestSourceBuilder.Mapping( "A", "B", - TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteStrategy.None), + TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteMembersStrategy.None), _classA, _classB ); @@ -55,7 +55,7 @@ public void ClassAttributeIgnoreObsoleteBoth() var source = TestSourceBuilder.Mapping( "A", "B", - TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteStrategy.Both), + TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteMembersStrategy.Both), _classA, _classB ); @@ -78,7 +78,7 @@ public void ClassAttributeIgnoreSourceShouldDiagnostic() var source = TestSourceBuilder.Mapping( "A", "B", - TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteStrategy.Source), + TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteMembersStrategy.Source), _classA, _classB ); @@ -102,7 +102,7 @@ public void ClassAttributeIgnoreTargetShouldDiagnostic() var source = TestSourceBuilder.Mapping( "A", "B", - TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteStrategy.Target), + TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteMembersStrategy.Target), _classA, _classB ); @@ -124,7 +124,7 @@ public void ClassAttributeIgnoreTargetShouldDiagnostic() public void MethodAttributeIgnoreObsoleteNone() { var source = TestSourceBuilder.MapperWithBodyAndTypes( - "[MapperIgnoreObsoleteMembers(IgnoreObsoleteStrategy.None)] partial B Map(A source);", + "[MapperIgnoreObsoleteMembers(IgnoreObsoleteMembersStrategy.None)] partial B Map(A source);", _classA, _classB ); @@ -145,7 +145,7 @@ public void MethodAttributeIgnoreObsoleteNone() [Fact] public void MethodAttributeIgnoreObsoleteBoth() { - var source = TestSourceBuilder.MapperWithBodyAndTypes("[MapperIgnoreObsoleteMembers()] partial B Map(A source);", _classA, _classB); + var source = TestSourceBuilder.MapperWithBodyAndTypes("[MapperIgnoreObsoleteMembers] partial B Map(A source);", _classA, _classB); TestHelper .GenerateMapper(source, TestHelperOptions.AllowInfoDiagnostics) @@ -163,7 +163,7 @@ public void MethodAttributeIgnoreObsoleteBoth() public void MethodAttributeIgnoreObsoleteSourceShouldDiagnostic() { var source = TestSourceBuilder.MapperWithBodyAndTypes( - "[MapperIgnoreObsoleteMembers(IgnoreObsoleteStrategy.Source)] partial B Map(A source);", + "[MapperIgnoreObsoleteMembers(IgnoreObsoleteMembersStrategy.Source)] partial B Map(A source);", _classA, _classB ); @@ -185,7 +185,7 @@ public void MethodAttributeIgnoreObsoleteSourceShouldDiagnostic() public void MethodAttributeIgnoreObsoleteTargetShouldDiagnostic() { var source = TestSourceBuilder.MapperWithBodyAndTypes( - "[MapperIgnoreObsoleteMembers(IgnoreObsoleteStrategy.Target)] partial B Map(A source);", + "[MapperIgnoreObsoleteMembers(IgnoreObsoleteMembersStrategy.Target)] partial B Map(A source);", _classA, _classB ); @@ -207,8 +207,8 @@ public void MethodAttributeIgnoreObsoleteTargetShouldDiagnostic() public void MethodAttributeOverridesClassAttribute() { var source = TestSourceBuilder.MapperWithBodyAndTypes( - "[MapperIgnoreObsoleteMembers(IgnoreObsoleteStrategy.None)] partial B Map(A source);", - TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteStrategy.Both), + "[MapperIgnoreObsoleteMembers(IgnoreObsoleteMembersStrategy.None)] partial B Map(A source);", + TestSourceBuilderOptions.WithIgnoreObsolete(IgnoreObsoleteMembersStrategy.Both), _classA, _classB ); @@ -220,6 +220,7 @@ public void MethodAttributeOverridesClassAttribute() """ var target = new global::B(); target.Value = source.Value; + target.Ignored = source.Ignored; return target; """ ); diff --git a/test/Riok.Mapperly.Tests/TestSourceBuilder.cs b/test/Riok.Mapperly.Tests/TestSourceBuilder.cs index 50b9d4c3c3..e5e1d72f03 100644 --- a/test/Riok.Mapperly.Tests/TestSourceBuilder.cs +++ b/test/Riok.Mapperly.Tests/TestSourceBuilder.cs @@ -77,7 +77,7 @@ private static string BuildAttribute(TestSourceBuilderOptions options) Attribute(options.EnabledConversions), Attribute(options.PropertyNameMappingStrategy), Attribute(options.EnumMappingStrategy), - Attribute(options.IgnoreObsoleteStrategy), + Attribute(options.IgnoreObsoleteMembersStrategy), }; return $"[Mapper({string.Join(", ", attrs)})]"; } diff --git a/test/Riok.Mapperly.Tests/TestSourceBuilderOptions.cs b/test/Riok.Mapperly.Tests/TestSourceBuilderOptions.cs index f27599e0d5..dcddfd9aa1 100644 --- a/test/Riok.Mapperly.Tests/TestSourceBuilderOptions.cs +++ b/test/Riok.Mapperly.Tests/TestSourceBuilderOptions.cs @@ -11,15 +11,15 @@ public record TestSourceBuilderOptions( PropertyNameMappingStrategy PropertyNameMappingStrategy = PropertyNameMappingStrategy.CaseSensitive, MappingConversionType EnabledConversions = MappingConversionType.All, EnumMappingStrategy EnumMappingStrategy = EnumMappingStrategy.ByValue, - IgnoreObsoleteStrategy IgnoreObsoleteStrategy = IgnoreObsoleteStrategy.None + IgnoreObsoleteMembersStrategy IgnoreObsoleteMembersStrategy = IgnoreObsoleteMembersStrategy.None ) { public static readonly TestSourceBuilderOptions Default = new(); public static readonly TestSourceBuilderOptions WithDeepCloning = new(UseDeepCloning: true); public static readonly TestSourceBuilderOptions WithReferenceHandling = new(UseReferenceHandling: true); - public static TestSourceBuilderOptions WithIgnoreObsolete(IgnoreObsoleteStrategy ignoreObsoleteStrategy) => - new(IgnoreObsoleteStrategy: ignoreObsoleteStrategy); + public static TestSourceBuilderOptions WithIgnoreObsolete(IgnoreObsoleteMembersStrategy ignoreObsoleteStrategy) => + new(IgnoreObsoleteMembersStrategy: ignoreObsoleteStrategy); public static TestSourceBuilderOptions WithDisabledMappingConversion(params MappingConversionType[] conversionTypes) {