diff --git a/src/Riok.Mapperly.Abstractions/MapEnumValueAttribute.cs b/src/Riok.Mapperly.Abstractions/MapEnumValueAttribute.cs
index 75fcc55457..64c168fa94 100644
--- a/src/Riok.Mapperly.Abstractions/MapEnumValueAttribute.cs
+++ b/src/Riok.Mapperly.Abstractions/MapEnumValueAttribute.cs
@@ -3,7 +3,7 @@ namespace Riok.Mapperly.Abstractions;
///
/// Customizes how enum values are mapped
///
-[AttributeUsage(AttributeTargets.Method)]
+[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public sealed class MapEnumValueAttribute : Attribute
{
///
diff --git a/test/Riok.Mapperly.IntegrationTests/Dto/TestEnumDtoAdditionalValue.cs b/test/Riok.Mapperly.IntegrationTests/Dto/TestEnumDtoAdditionalValue.cs
index 51123e2915..af0be0195d 100644
--- a/test/Riok.Mapperly.IntegrationTests/Dto/TestEnumDtoAdditionalValue.cs
+++ b/test/Riok.Mapperly.IntegrationTests/Dto/TestEnumDtoAdditionalValue.cs
@@ -6,5 +6,6 @@ public enum TestEnumDtoAdditionalValue
Value20 = 20,
Value30 = 30,
Value40 = 40,
+ Value50 = 50,
}
}
diff --git a/test/Riok.Mapperly.IntegrationTests/Mapper/StaticTestMapper.cs b/test/Riok.Mapperly.IntegrationTests/Mapper/StaticTestMapper.cs
index 3af649863d..1f1c71ec7a 100644
--- a/test/Riok.Mapperly.IntegrationTests/Mapper/StaticTestMapper.cs
+++ b/test/Riok.Mapperly.IntegrationTests/Mapper/StaticTestMapper.cs
@@ -95,10 +95,12 @@ public static void MapExistingList(List src, List dst)
[MapEnum(EnumMappingStrategy.ByName)]
[MapEnumValue(TestEnumDtoAdditionalValue.Value40, TestEnum.Value30)]
+ [MapEnumValue(TestEnumDtoAdditionalValue.Value50, TestEnum.Value30)]
public static partial TestEnum MapToEnumByNameWithExplicit(TestEnumDtoAdditionalValue v);
[MapEnum(EnumMappingStrategy.ByValue)]
[MapEnumValue(TestEnumDtoAdditionalValue.Value40, TestEnum.Value30)]
+ [MapEnumValue(TestEnumDtoAdditionalValue.Value50, TestEnum.Value30)]
public static partial TestEnum MapToEnumByValueWithExplicit(TestEnumDtoAdditionalValue v);
[MapEnum(EnumMappingStrategy.ByName)]
diff --git a/test/Riok.Mapperly.IntegrationTests/_snapshots/NET_48/StaticMapperTest.SnapshotGeneratedSource.verified.cs b/test/Riok.Mapperly.IntegrationTests/_snapshots/NET_48/StaticMapperTest.SnapshotGeneratedSource.verified.cs
index a8eac642be..e48f611e0d 100644
--- a/test/Riok.Mapperly.IntegrationTests/_snapshots/NET_48/StaticMapperTest.SnapshotGeneratedSource.verified.cs
+++ b/test/Riok.Mapperly.IntegrationTests/_snapshots/NET_48/StaticMapperTest.SnapshotGeneratedSource.verified.cs
@@ -527,6 +527,7 @@ object x when typeof(TTarget).IsAssignableFrom(typeof(object)) => (TTarget)(obje
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value20 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value20,
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value30 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value40 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
+ global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value50 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
_ => throw new System.ArgumentOutOfRangeException(nameof(v), v, "The value of enum TestEnumDtoAdditionalValue is not supported"),
};
}
@@ -536,6 +537,7 @@ object x when typeof(TTarget).IsAssignableFrom(typeof(object)) => (TTarget)(obje
return v switch
{
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value40 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
+ global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value50 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
_ => (global::Riok.Mapperly.IntegrationTests.Models.TestEnum)v,
};
}
diff --git a/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_4_OR_LOWER/StaticMapperTest.SnapshotGeneratedSource.verified.cs b/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_4_OR_LOWER/StaticMapperTest.SnapshotGeneratedSource.verified.cs
index bc12d07b41..48c144ef06 100644
--- a/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_4_OR_LOWER/StaticMapperTest.SnapshotGeneratedSource.verified.cs
+++ b/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_4_OR_LOWER/StaticMapperTest.SnapshotGeneratedSource.verified.cs
@@ -527,6 +527,7 @@ object x when typeof(TTarget).IsAssignableFrom(typeof(object)) => (TTarget)(obje
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value20 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value20,
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value30 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value40 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
+ global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value50 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
_ => throw new System.ArgumentOutOfRangeException(nameof(v), v, "The value of enum TestEnumDtoAdditionalValue is not supported"),
};
}
@@ -536,6 +537,7 @@ object x when typeof(TTarget).IsAssignableFrom(typeof(object)) => (TTarget)(obje
return v switch
{
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value40 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
+ global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value50 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
_ => (global::Riok.Mapperly.IntegrationTests.Models.TestEnum)v,
};
}
diff --git a/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_5/StaticMapperTest.SnapshotGeneratedSource.verified.cs b/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_5/StaticMapperTest.SnapshotGeneratedSource.verified.cs
index f7bac3307e..3c64e3b8f2 100644
--- a/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_5/StaticMapperTest.SnapshotGeneratedSource.verified.cs
+++ b/test/Riok.Mapperly.IntegrationTests/_snapshots/Roslyn_4_5/StaticMapperTest.SnapshotGeneratedSource.verified.cs
@@ -536,6 +536,7 @@ object x when typeof(TTarget).IsAssignableFrom(typeof(object)) => (TTarget)(obje
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value20 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value20,
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value30 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value40 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
+ global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value50 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
_ => throw new System.ArgumentOutOfRangeException(nameof(v), v, "The value of enum TestEnumDtoAdditionalValue is not supported"),
};
}
@@ -545,6 +546,7 @@ object x when typeof(TTarget).IsAssignableFrom(typeof(object)) => (TTarget)(obje
return v switch
{
global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value40 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
+ global::Riok.Mapperly.IntegrationTests.Dto.TestEnumDtoAdditionalValue.Value50 => global::Riok.Mapperly.IntegrationTests.Models.TestEnum.Value30,
_ => (global::Riok.Mapperly.IntegrationTests.Models.TestEnum)v,
};
}
@@ -728,4 +730,4 @@ private static string MapToString1(global::Riok.Mapperly.IntegrationTests.Dto.Te
return target;
}
}
-}
\ No newline at end of file
+}