Skip to content

Commit 35811cc

Browse files
committed
Address feedback
1 parent c117bc5 commit 35811cc

File tree

3 files changed

+32
-4
lines changed

3 files changed

+32
-4
lines changed

src/Microsoft.OpenApi/Extensions/StringExtensions.cs

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ public static class StringExtensions
1717
/// Gets the enum value based on the given enum type and display name.
1818
/// </summary>
1919
/// <param name="displayName">The display name.</param>
20-
[UnconditionalSuppressMessage("Trimming", "IL2075", Justification = "Fields are never trimmed for enum types.")]
2120
public static T GetEnumFromDisplayName<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] T>(this string displayName)
2221
{
2322
var type = typeof(T);

test/Microsoft.OpenApi.Tests/Attributes/DisplayAttributeTests.cs

+31-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.OpenApi.Attributes;
1+
using System;
2+
using Microsoft.OpenApi.Attributes;
23
using Microsoft.OpenApi.Extensions;
34
using Xunit;
45

@@ -14,6 +15,17 @@ public enum ApiLevel
1415
Corporate = 3
1516
}
1617

18+
[Flags]
19+
public enum UserType
20+
{
21+
[DisplayAttribute("admin")]
22+
Admin = 1,
23+
[DisplayAttribute("editor")]
24+
Editor = 2,
25+
[DisplayAttribute("publisher")]
26+
Publisher = 3
27+
}
28+
1729
public class DisplayAttributeTests
1830
{
1931
[Theory]
@@ -24,5 +36,23 @@ public void GetDisplayNameExtensionShouldUseDisplayAttribute(ApiLevel apiLevel,
2436
{
2537
Assert.Equal(expected, apiLevel.GetDisplayName());
2638
}
39+
40+
[Theory]
41+
[InlineData(ApiLevel.Private,"private")]
42+
[InlineData(ApiLevel.Public, "public")]
43+
[InlineData(ApiLevel.Corporate, "corporate")]
44+
public void GetEnumFromDisplayNameShouldReturnEnumValue(ApiLevel expected, string displayName)
45+
{
46+
Assert.Equal(expected, displayName.GetEnumFromDisplayName<ApiLevel>());
47+
}
48+
49+
[Theory]
50+
[InlineData(UserType.Admin,"admin")]
51+
[InlineData(UserType.Publisher, "publisher")]
52+
[InlineData(UserType.Editor, "editor")]
53+
public void GetEnumFromDisplayNameShouldReturnEnumValueForFlagsEnum(UserType expected, string displayName)
54+
{
55+
Assert.Equal(expected, displayName.GetEnumFromDisplayName<UserType>());
56+
}
2757
}
2858
}
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
// See https://aka.ms/new-console-template for more information
2-
Console.WriteLine("Hello, World!");
1+
Console.WriteLine("Hello, World!");

0 commit comments

Comments
 (0)