From b0141b04dbb2b9e94010b8c0a8afeda468f9cf58 Mon Sep 17 00:00:00 2001 From: Fernando Gutierres Damaceno Date: Mon, 20 Jun 2022 15:29:26 -0300 Subject: [PATCH] feat: change DisplayAttribute to public --- .../Attributes/DisplayAttribute.cs | 2 +- .../Attributes/DisplayAttributeTests.cs | 28 +++++++++++++ .../PublicApi/PublicApi.approved.txt | 42 +++++++++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 test/Microsoft.OpenApi.Tests/Attributes/DisplayAttributeTests.cs diff --git a/src/Microsoft.OpenApi/Attributes/DisplayAttribute.cs b/src/Microsoft.OpenApi/Attributes/DisplayAttribute.cs index 920593bbd..db60448ea 100644 --- a/src/Microsoft.OpenApi/Attributes/DisplayAttribute.cs +++ b/src/Microsoft.OpenApi/Attributes/DisplayAttribute.cs @@ -9,7 +9,7 @@ namespace Microsoft.OpenApi.Attributes /// Represents the Open Api Data type metadata attribute. /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] - internal class DisplayAttribute : Attribute + public class DisplayAttribute : Attribute { /// /// Initializes a new instance of the class. diff --git a/test/Microsoft.OpenApi.Tests/Attributes/DisplayAttributeTests.cs b/test/Microsoft.OpenApi.Tests/Attributes/DisplayAttributeTests.cs new file mode 100644 index 000000000..26ec04556 --- /dev/null +++ b/test/Microsoft.OpenApi.Tests/Attributes/DisplayAttributeTests.cs @@ -0,0 +1,28 @@ +using Microsoft.OpenApi.Attributes; +using Microsoft.OpenApi.Extensions; +using Xunit; + +namespace Microsoft.OpenApi.Tests.Attributes +{ + + public enum ApiLevel + { + [DisplayAttribute("private")] + Private = 1, + [DisplayAttribute("public")] + Public = 2, + [DisplayAttribute("corporate")] + Corporate = 3 + } + public class DisplayAttributeTests + { + [Theory] + [InlineData(ApiLevel.Private,"private")] + [InlineData(ApiLevel.Public, "public")] + [InlineData(ApiLevel.Corporate, "corporate")] + public void GetDisplayNameExtensionShouldUseDisplayAttribute(ApiLevel apiLevel, string expected) + { + Assert.Equal(expected, apiLevel.GetDisplayName()); + } + } +} diff --git a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt index 02400ddd7..1ff59138d 100755 --- a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt +++ b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt @@ -120,6 +120,15 @@ namespace Microsoft.OpenApi.Any Password = 10, } } +namespace Microsoft.OpenApi.Attributes +{ + [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field)] + public class DisplayAttribute : System.Attribute + { + public DisplayAttribute(string name) { } + public string Name { get; } + } +} namespace Microsoft.OpenApi.Exceptions { public class OpenApiException : System.Exception @@ -899,43 +908,72 @@ namespace Microsoft.OpenApi.Models } public enum OperationType { + [Microsoft.OpenApi.Attributes.Display("get")] Get = 0, + [Microsoft.OpenApi.Attributes.Display("put")] Put = 1, + [Microsoft.OpenApi.Attributes.Display("post")] Post = 2, + [Microsoft.OpenApi.Attributes.Display("delete")] Delete = 3, + [Microsoft.OpenApi.Attributes.Display("options")] Options = 4, + [Microsoft.OpenApi.Attributes.Display("head")] Head = 5, + [Microsoft.OpenApi.Attributes.Display("patch")] Patch = 6, + [Microsoft.OpenApi.Attributes.Display("trace")] Trace = 7, } public enum ParameterLocation { + [Microsoft.OpenApi.Attributes.Display("query")] Query = 0, + [Microsoft.OpenApi.Attributes.Display("header")] Header = 1, + [Microsoft.OpenApi.Attributes.Display("path")] Path = 2, + [Microsoft.OpenApi.Attributes.Display("cookie")] Cookie = 3, } public enum ParameterStyle { + [Microsoft.OpenApi.Attributes.Display("matrix")] Matrix = 0, + [Microsoft.OpenApi.Attributes.Display("label")] Label = 1, + [Microsoft.OpenApi.Attributes.Display("form")] Form = 2, + [Microsoft.OpenApi.Attributes.Display("simple")] Simple = 3, + [Microsoft.OpenApi.Attributes.Display("spaceDelimited")] SpaceDelimited = 4, + [Microsoft.OpenApi.Attributes.Display("pipeDelimited")] PipeDelimited = 5, + [Microsoft.OpenApi.Attributes.Display("deepObject")] DeepObject = 6, } public enum ReferenceType { + [Microsoft.OpenApi.Attributes.Display("schemas")] Schema = 0, + [Microsoft.OpenApi.Attributes.Display("responses")] Response = 1, + [Microsoft.OpenApi.Attributes.Display("parameters")] Parameter = 2, + [Microsoft.OpenApi.Attributes.Display("examples")] Example = 3, + [Microsoft.OpenApi.Attributes.Display("requestBodies")] RequestBody = 4, + [Microsoft.OpenApi.Attributes.Display("headers")] Header = 5, + [Microsoft.OpenApi.Attributes.Display("securitySchemes")] SecurityScheme = 6, + [Microsoft.OpenApi.Attributes.Display("links")] Link = 7, + [Microsoft.OpenApi.Attributes.Display("callbacks")] Callback = 8, + [Microsoft.OpenApi.Attributes.Display("tags")] Tag = 9, } public class RuntimeExpressionAnyWrapper : Microsoft.OpenApi.Interfaces.IOpenApiElement @@ -947,9 +985,13 @@ namespace Microsoft.OpenApi.Models } public enum SecuritySchemeType { + [Microsoft.OpenApi.Attributes.Display("apiKey")] ApiKey = 0, + [Microsoft.OpenApi.Attributes.Display("http")] Http = 1, + [Microsoft.OpenApi.Attributes.Display("oauth2")] OAuth2 = 2, + [Microsoft.OpenApi.Attributes.Display("openIdConnect")] OpenIdConnect = 3, } }