From 11c390d89bf4bc137b3f418081f3b4a750df1b07 Mon Sep 17 00:00:00 2001
From: Safia Abdalla <safia@microsoft.com>
Date: Thu, 29 Sep 2022 15:08:09 -0700
Subject: [PATCH] Upgrade Microsoft.OpenApi dependency to 1.4.3 (#44229)

* Upgrade Microsoft.OpenApi dependency to 1.4.3
* Update tests to use copy constructors
---
 eng/Versions.props                            |  2 +-
 ...penApiRouteHandlerBuilderExtensionTests.cs | 31 ++++++++-----------
 2 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/eng/Versions.props b/eng/Versions.props
index 332f2d7573d..438b72bf74e 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -290,7 +290,7 @@
     <XUnitRunnerVisualStudioVersion>2.4.3</XUnitRunnerVisualStudioVersion>
     <MicrosoftDataSqlClientVersion>4.0.1</MicrosoftDataSqlClientVersion>
     <MicrosoftAspNetCoreAppVersion>6.0.0-preview.3.21167.1</MicrosoftAspNetCoreAppVersion>
-    <MicrosoftOpenApiVersion>1.2.3</MicrosoftOpenApiVersion>
+    <MicrosoftOpenApiVersion>1.4.3</MicrosoftOpenApiVersion>
     <!-- dotnet tool versions (see also auto-updated DotnetEfVersion property). -->
     <DotnetDumpVersion>6.0.322601</DotnetDumpVersion>
     <DotnetServeVersion>1.10.93</DotnetServeVersion>
diff --git a/src/OpenApi/test/OpenApiRouteHandlerBuilderExtensionTests.cs b/src/OpenApi/test/OpenApiRouteHandlerBuilderExtensionTests.cs
index 2a86cb016c6..793b6f9bfe4 100644
--- a/src/OpenApi/test/OpenApiRouteHandlerBuilderExtensionTests.cs
+++ b/src/OpenApi/test/OpenApiRouteHandlerBuilderExtensionTests.cs
@@ -72,9 +72,9 @@ public class OpenApiRouteHandlerBuilderExtensionTests
         var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(serviceProvider));
         string GetString(string id) => "Foo";
         _ = builder.MapDelete("/{id}", GetString)
-            .WithOpenApi(generatedOperation => {
-                generatedOperation.Parameters[0].Schema = new() { Type = "number" };
-                return generatedOperation;
+            .WithOpenApi(operation => new(operation)
+            {
+                Parameters = new List<OpenApiParameter>() { new() { Schema = new() { Type = "number" } } }
             });
 
         var dataSource = GetBuilderEndpointDataSource(builder);
@@ -161,15 +161,13 @@ public class OpenApiRouteHandlerBuilderExtensionTests
         var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(serviceProvider));
         string GetString() => "Foo";
         var myGroup = builder.MapGroup("/group");
-        myGroup.WithOpenApi(o =>
+        myGroup.WithOpenApi(o => new(o)
         {
-            o.Summary = "Set from outer group";
-            return o;
+            Summary = "Set from outer group"
         });
-        myGroup.MapDelete("/a", GetString).WithOpenApi(o =>
+        myGroup.MapDelete("/a", GetString).WithOpenApi(o => new(o)
         {
-            o.Summary = "Set from endpoint";
-            return o;
+            Summary = "Set from endpoint"
         });
 
         // The RotueGroupBuilder adds a single EndpointDataSource.
@@ -195,10 +193,9 @@ public class OpenApiRouteHandlerBuilderExtensionTests
 
         static void WithLocalSummary(RouteHandlerBuilder builder)
         {
-            builder.WithOpenApi(operation =>
+            builder.WithOpenApi(operation => new(operation)
             {
-                operation.Summary = $"| Local Summary | 200 Status Response Content-Type: {operation.Responses["200"].Content.Keys.Single()}";
-                return operation;
+                Summary = $"| Local Summary | 200 Status Response Content-Type: {operation.Responses["200"].Content.Keys.Single()}"
             });
         }
 
@@ -210,19 +207,17 @@ public class OpenApiRouteHandlerBuilderExtensionTests
         WithLocalSummary(outerGroup.MapDelete("/outer-a", GetString));
 
         // The order WithOpenApi() is relative to the MapDelete() methods does not matter.
-        outerGroup.WithOpenApi(operation =>
+        outerGroup.WithOpenApi(operation => new(operation)
         {
-            operation.Summary = $"Outer Group Summary {operation.Summary}";
-            return operation;
+            Summary = $"Outer Group Summary {operation.Summary}"
         });
 
         WithLocalSummary(outerGroup.MapDelete("/outer-b", GetString));
         WithLocalSummary(innerGroup.MapDelete("/inner-a", GetString));
 
-        innerGroup.WithOpenApi(operation =>
+        innerGroup.WithOpenApi(operation => new(operation)
         {
-            operation.Summary = $"| Inner Group Summary {operation.Summary}";
-            return operation;
+            Summary = $"| Inner Group Summary {operation.Summary}"
         });
 
         WithLocalSummary(innerGroup.MapDelete("/inner-b", GetString));
-- 
GitLab