Skip to content

Commit 8ea0964

Browse files
committed
Add ReferenceType.Path and tests for display names
1 parent 5b006b2 commit 8ea0964

File tree

2 files changed

+149
-1
lines changed

2 files changed

+149
-1
lines changed

src/Microsoft.OpenApi/Extensions/EnumExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ public static string GetDisplayName(this Enum enumValue)
9393
ReferenceType.Link => "links",
9494
ReferenceType.Callback => "callbacks",
9595
ReferenceType.Tag => "tags",
96+
ReferenceType.Path => "path",
9697
_ => throw new InvalidOperationException($"Unknown reference type: {referenceType}")
9798
};
9899

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

Lines changed: 148 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
using Microsoft.OpenApi.Attributes;
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Reflection.Metadata;
5+
using Microsoft.OpenApi.Attributes;
26
using Microsoft.OpenApi.Extensions;
7+
using Microsoft.OpenApi.Models;
38
using Xunit;
49

510
namespace Microsoft.OpenApi.Tests.Attributes
@@ -26,5 +31,147 @@ public void GetDisplayNameExtensionShouldUseDisplayAttribute(ApiLevel apiLevel,
2631
Assert.Equal(expected, apiLevel.GetDisplayName());
2732
#pragma warning restore CS0618 // Type or member is obsolete, testing obsolete behavior
2833
}
34+
35+
[Fact]
36+
public void GetDisplayNameWorksForAllParameterStyle()
37+
{
38+
var enumValues = new List<ParameterStyle>(Enum.GetValues<ParameterStyle>());
39+
40+
Assert.Equal("matrix", ParameterStyle.Matrix.GetDisplayName());
41+
Assert.True(enumValues.Remove(ParameterStyle.Matrix));
42+
43+
Assert.Equal("label", ParameterStyle.Label.GetDisplayName());
44+
Assert.True(enumValues.Remove(ParameterStyle.Label));
45+
46+
Assert.Equal("form", ParameterStyle.Form.GetDisplayName());
47+
Assert.True(enumValues.Remove(ParameterStyle.Form));
48+
49+
Assert.Equal("simple", ParameterStyle.Simple.GetDisplayName());
50+
Assert.True(enumValues.Remove(ParameterStyle.Simple));
51+
52+
Assert.Equal("spaceDelimited", ParameterStyle.SpaceDelimited.GetDisplayName());
53+
Assert.True(enumValues.Remove(ParameterStyle.SpaceDelimited));
54+
55+
Assert.Equal("pipeDelimited", ParameterStyle.PipeDelimited.GetDisplayName());
56+
Assert.True(enumValues.Remove(ParameterStyle.PipeDelimited));
57+
58+
Assert.Equal("deepObject", ParameterStyle.DeepObject.GetDisplayName());
59+
Assert.True(enumValues.Remove(ParameterStyle.DeepObject));
60+
61+
Assert.Empty(enumValues);
62+
}
63+
64+
[Fact]
65+
public void GetDisplayNameWorksForAllParameterLocation()
66+
{
67+
var enumValues = new List<ParameterLocation>(Enum.GetValues<ParameterLocation>());
68+
69+
Assert.Equal("query", ParameterLocation.Query.GetDisplayName());
70+
Assert.True(enumValues.Remove(ParameterLocation.Query));
71+
72+
Assert.Equal("header", ParameterLocation.Header.GetDisplayName());
73+
Assert.True(enumValues.Remove(ParameterLocation.Header));
74+
75+
Assert.Equal("path", ParameterLocation.Path.GetDisplayName());
76+
Assert.True(enumValues.Remove(ParameterLocation.Path));
77+
78+
Assert.Equal("cookie", ParameterLocation.Cookie.GetDisplayName());
79+
Assert.True(enumValues.Remove(ParameterLocation.Cookie));
80+
81+
Assert.Empty(enumValues);
82+
}
83+
84+
[Fact]
85+
public void GetDisplayNameWorksForAllReferenceType()
86+
{
87+
var enumValues = new List<ReferenceType>(Enum.GetValues<ReferenceType>());
88+
89+
Assert.Equal("schemas", ReferenceType.Schema.GetDisplayName());
90+
Assert.True(enumValues.Remove(ReferenceType.Schema));
91+
92+
Assert.Equal("responses", ReferenceType.Response.GetDisplayName());
93+
Assert.True(enumValues.Remove(ReferenceType.Response));
94+
95+
Assert.Equal("parameters", ReferenceType.Parameter.GetDisplayName());
96+
Assert.True(enumValues.Remove(ReferenceType.Parameter));
97+
98+
Assert.Equal("examples", ReferenceType.Example.GetDisplayName());
99+
Assert.True(enumValues.Remove(ReferenceType.Example));
100+
101+
Assert.Equal("requestBodies", ReferenceType.RequestBody.GetDisplayName());
102+
Assert.True(enumValues.Remove(ReferenceType.RequestBody));
103+
104+
Assert.Equal("headers", ReferenceType.Header.GetDisplayName());
105+
Assert.True(enumValues.Remove(ReferenceType.Header));
106+
107+
Assert.Equal("securitySchemes", ReferenceType.SecurityScheme.GetDisplayName());
108+
Assert.True(enumValues.Remove(ReferenceType.SecurityScheme));
109+
110+
Assert.Equal("links", ReferenceType.Link.GetDisplayName());
111+
Assert.True(enumValues.Remove(ReferenceType.Link));
112+
113+
Assert.Equal("callbacks", ReferenceType.Callback.GetDisplayName());
114+
Assert.True(enumValues.Remove(ReferenceType.Callback));
115+
116+
Assert.Equal("tags", ReferenceType.Tag.GetDisplayName());
117+
Assert.True(enumValues.Remove(ReferenceType.Tag));
118+
119+
Assert.Equal("path", ReferenceType.Path.GetDisplayName());
120+
Assert.True(enumValues.Remove(ReferenceType.Path));
121+
122+
Assert.Empty(enumValues);
123+
}
124+
125+
[Fact]
126+
public void GetDisplayNameWorksForAllOperationTypes()
127+
{
128+
var enumValues = new List<OperationType>(Enum.GetValues<OperationType>());
129+
130+
Assert.Equal("get", OperationType.Get.GetDisplayName());
131+
Assert.True(enumValues.Remove(OperationType.Get));
132+
133+
Assert.Equal("put", OperationType.Put.GetDisplayName());
134+
Assert.True(enumValues.Remove(OperationType.Put));
135+
136+
Assert.Equal("post", OperationType.Post.GetDisplayName());
137+
Assert.True(enumValues.Remove(OperationType.Post));
138+
139+
Assert.Equal("delete", OperationType.Delete.GetDisplayName());
140+
Assert.True(enumValues.Remove(OperationType.Delete));
141+
142+
Assert.Equal("options", OperationType.Options.GetDisplayName());
143+
Assert.True(enumValues.Remove(OperationType.Options));
144+
145+
Assert.Equal("head", OperationType.Head.GetDisplayName());
146+
Assert.True(enumValues.Remove(OperationType.Head));
147+
148+
Assert.Equal("patch", OperationType.Patch.GetDisplayName());
149+
Assert.True(enumValues.Remove(OperationType.Patch));
150+
151+
Assert.Equal("trace", OperationType.Trace.GetDisplayName());
152+
Assert.True(enumValues.Remove(OperationType.Trace));
153+
154+
Assert.Empty(enumValues);
155+
}
156+
157+
[Fact]
158+
public void GetDisplayNameWorksForAllSecuritySchemeTypes()
159+
{
160+
var enumValues = new List<SecuritySchemeType>(Enum.GetValues<SecuritySchemeType>());
161+
162+
Assert.Equal("apiKey", SecuritySchemeType.ApiKey.GetDisplayName());
163+
Assert.True(enumValues.Remove(SecuritySchemeType.ApiKey));
164+
165+
Assert.Equal("http", SecuritySchemeType.Http.GetDisplayName());
166+
Assert.True(enumValues.Remove(SecuritySchemeType.Http));
167+
168+
Assert.Equal("oauth2", SecuritySchemeType.OAuth2.GetDisplayName());
169+
Assert.True(enumValues.Remove(SecuritySchemeType.OAuth2));
170+
171+
Assert.Equal("openIdConnect", SecuritySchemeType.OpenIdConnect.GetDisplayName());
172+
Assert.True(enumValues.Remove(SecuritySchemeType.OpenIdConnect));
173+
174+
Assert.Empty(enumValues);
175+
}
29176
}
30177
}

0 commit comments

Comments
 (0)