From fecd0fe70d9fd6cf4228aaa534c915b722a1925b Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 28 Feb 2022 11:21:44 -0500 Subject: [PATCH 1/3] - upgrades odata conversion lib reference in hidi --- src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj | 6 +++--- src/Microsoft.OpenApi.Hidi/OpenApiService.cs | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj b/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj index ecd6f19f5..2c745fd70 100644 --- a/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj +++ b/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj @@ -15,13 +15,13 @@ Microsoft.OpenApi.Hidi hidi ./../../artifacts - 0.5.0-preview4 + 0.6.0-preview1 OpenAPI.NET CLI tool for slicing OpenAPI documents © Microsoft Corporation. All rights reserved. OpenAPI .NET https://github.com/Microsoft/OpenAPI.NET -- Publish symbols. +- Upgrades Microsoft.OpenApi.OData to 1.0.10-preview1 Microsoft.OpenApi.Hidi Microsoft.OpenApi.Hidi @@ -37,7 +37,7 @@ - + diff --git a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs index d7a4f4298..730b8f894 100644 --- a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs +++ b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs @@ -206,8 +206,12 @@ public static OpenApiDocument ConvertCsdlToOpenApi(Stream csdl) var settings = new OpenApiConvertSettings() { + AddSingleQuotesForStringParameters = true, + AddEnumDescriptionExtension = true, + DeclarePathParametersOnPathItem = true, EnableKeyAsSegment = true, EnableOperationId = true, + ErrorResponsesAsDefault = false, PrefixEntityTypeNameBeforeKey = true, TagDepth = 2, EnablePagination = true, From cd100d5392b3af1c84e9920a34174e1e351b59f9 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 28 Feb 2022 11:50:23 -0500 Subject: [PATCH 2/3] - fixes conversion tests and makes method async --- src/Microsoft.OpenApi.Hidi/OpenApiService.cs | 6 +++--- .../Services/OpenApiServiceTests.cs | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs index 730b8f894..e04fa4f3c 100644 --- a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs +++ b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs @@ -92,7 +92,7 @@ string filterbycollection version ??= OpenApiSpecVersion.OpenApi3_0; stream = await GetStream(csdl, logger); - document = ConvertCsdlToOpenApi(stream); + document = await ConvertCsdlToOpenApi(stream); } else { @@ -198,10 +198,10 @@ string filterbycollection /// /// The CSDL stream. /// An OpenAPI document. - public static OpenApiDocument ConvertCsdlToOpenApi(Stream csdl) + public static async Task ConvertCsdlToOpenApi(Stream csdl) { using var reader = new StreamReader(csdl); - var csdlText = reader.ReadToEndAsync().GetAwaiter().GetResult(); + var csdlText = await reader.ReadToEndAsync(); var edmModel = CsdlReader.Parse(XElement.Parse(csdlText).CreateReader()); var settings = new OpenApiConvertSettings() diff --git a/test/Microsoft.OpenApi.Tests/Services/OpenApiServiceTests.cs b/test/Microsoft.OpenApi.Tests/Services/OpenApiServiceTests.cs index 1b94a3557..1c9fd003b 100644 --- a/test/Microsoft.OpenApi.Tests/Services/OpenApiServiceTests.cs +++ b/test/Microsoft.OpenApi.Tests/Services/OpenApiServiceTests.cs @@ -3,6 +3,7 @@ using System; using System.IO; +using System.Threading.Tasks; using Microsoft.OpenApi.Hidi; using Microsoft.OpenApi.Services; using Xunit; @@ -12,7 +13,7 @@ namespace Microsoft.OpenApi.Tests.Services public class OpenApiServiceTests { [Fact] - public void ReturnConvertedCSDLFile() + public async Task ReturnConvertedCSDLFile() { // Arrange var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "UtilityFiles\\Todo.xml"); @@ -20,20 +21,20 @@ public void ReturnConvertedCSDLFile() var csdlStream = fileInput.OpenRead(); // Act - var openApiDoc = OpenApiService.ConvertCsdlToOpenApi(csdlStream); - var expectedPathCount = 5; + var openApiDoc = await OpenApiService.ConvertCsdlToOpenApi(csdlStream); + var expectedPathCount = 6; // Assert Assert.NotNull(openApiDoc); Assert.NotEmpty(openApiDoc.Paths); - Assert.Equal(openApiDoc.Paths.Count, expectedPathCount); + Assert.Equal(expectedPathCount, openApiDoc.Paths.Count); } [Theory] [InlineData("Todos.Todo.UpdateTodo",null, 1)] [InlineData("Todos.Todo.ListTodo",null, 1)] [InlineData(null, "Todos.Todo", 4)] - public void ReturnFilteredOpenApiDocBasedOnOperationIdsAndInputCsdlDocument(string operationIds, string tags, int expectedPathCount) + public async Task ReturnFilteredOpenApiDocBasedOnOperationIdsAndInputCsdlDocument(string operationIds, string tags, int expectedPathCount) { // Arrange var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "UtilityFiles\\Todo.xml"); @@ -41,7 +42,7 @@ public void ReturnFilteredOpenApiDocBasedOnOperationIdsAndInputCsdlDocument(stri var csdlStream = fileInput.OpenRead(); // Act - var openApiDoc = OpenApiService.ConvertCsdlToOpenApi(csdlStream); + var openApiDoc = await OpenApiService.ConvertCsdlToOpenApi(csdlStream); var predicate = OpenApiFilterService.CreatePredicate(operationIds, tags); var subsetOpenApiDocument = OpenApiFilterService.CreateFilteredDocument(openApiDoc, predicate); From ee063b7e1f95b56c0ca1f005629f6f11e44e738e Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 28 Feb 2022 11:50:38 -0500 Subject: [PATCH 3/3] - fixes outdated unit test data --- test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt index f700fee15..263e5dd12 100755 --- a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt +++ b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt @@ -358,6 +358,7 @@ namespace Microsoft.OpenApi.Models public const string AuthorizationUrl = "authorizationUrl"; public const string BasePath = "basePath"; public const string Basic = "basic"; + public const string Bearer = "bearer"; public const string BearerFormat = "bearerFormat"; public const string BodyName = "x-bodyName"; public const string Callbacks = "callbacks"; @@ -400,6 +401,7 @@ namespace Microsoft.OpenApi.Models public const string In = "in"; public const string Info = "info"; public const string Items = "items"; + public const string Jwt = "JWT"; public const string License = "license"; public const string Links = "links"; public const string Mapping = "mapping"; @@ -1206,7 +1208,7 @@ namespace Microsoft.OpenApi.Validations.Rules public static Microsoft.OpenApi.Validations.ValidationRule ResponsesMustBeIdentifiedByDefaultOrStatusCode { get; } public static Microsoft.OpenApi.Validations.ValidationRule ResponsesMustContainAtLeastOneResponse { get; } } - [System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.All, AllowMultiple=false, Inherited=false)] + [System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)] public class OpenApiRuleAttribute : System.Attribute { public OpenApiRuleAttribute() { }