From 9404742758cf8a671101702a7d382e01929e6095 Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Mon, 3 May 2021 16:31:54 +0200
Subject: [PATCH 1/9] [csharp-netcore] correct rawContent read

---
 .../libraries/httpclient/ApiClient.mustache               | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
index 619bcb6bfbb..78a4bce4ade 100644
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
@@ -399,10 +399,10 @@ namespace {{packageName}}.Client
         partial void InterceptRequest(HttpRequestMessage req);
         partial void InterceptResponse(HttpRequestMessage req, HttpResponseMessage response);
 
-        private ApiResponse<T> ToApiResponse<T>(HttpResponseMessage response, object responseData, Uri uri)
+        private async Task<ApiResponse<T>> ToApiResponse<T>(HttpResponseMessage response, object responseData, Uri uri)
         {
             T result = (T) responseData;
-            string rawContent = response.Content.ToString();
+            string rawContent = await response.Content.ReadAsStringAsync();
 
             var transformed = new ApiResponse<T>(response.StatusCode, new Multimap<string, string>({{#caseInsensitiveResponseHeaders}}StringComparer.OrdinalIgnoreCase{{/caseInsensitiveResponseHeaders}}), result, rawContent)
             {
@@ -523,9 +523,7 @@ namespace {{packageName}}.Client
 
             InterceptResponse(req, response);
 
-            var result = ToApiResponse<T>(response, responseData, req.RequestUri);
-
-            return result;
+            return await ToApiResponse<T>(response, responseData, req.RequestUri);
         }
 
         {{#supportsAsync}}
-- 
GitLab


From cea4cf90cb5c487bcb83d6b6561312e4b6a4f601 Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Mon, 3 May 2021 16:32:45 +0200
Subject: [PATCH 2/9] [csharp-netcore] avoid deserialize result when in error

---
 .../csharp-netcore/libraries/httpclient/ApiClient.mustache   | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
index 78a4bce4ade..4f2a0cb5071 100644
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
@@ -509,6 +509,11 @@ namespace {{packageName}}.Client
             }
 {{/supportsRetry}}
 
+            if (!response.IsSuccessStatusCode)
+            {
+                return await ToApiResponse<T>(response, default(T), req.RequestUri);
+            }
+			
             object responseData = deserializer.Deserialize<T>(response);
 
             // if the response type is oneOf/anyOf, call FromJSON to deserialize the data
-- 
GitLab


From 1ad9a745b6d76e7b317690eef959dc0aff75d5f2 Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Mon, 3 May 2021 17:02:42 +0200
Subject: [PATCH 3/9] [csharp-netcore] avoid aggregate exceptions

---
 .../libraries/httpclient/ApiClient.mustache          | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
index 4f2a0cb5071..1a87550c374 100644
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/libraries/httpclient/ApiClient.mustache
@@ -98,13 +98,13 @@ namespace {{packageName}}.Client
 
             if (type == typeof(byte[])) // return byte array
             {
-                return response.Content.ReadAsByteArrayAsync().Result;
+                return response.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult();
             }
 
             // TODO: ? if (type.IsAssignableFrom(typeof(Stream)))
             if (type == typeof(Stream))
             {
-                var bytes = response.Content.ReadAsByteArrayAsync().Result;
+                var bytes = response.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult();
                 if (headers != null)
                 {
                     var filePath = String.IsNullOrEmpty(_configuration.TempFolderPath)
@@ -128,18 +128,18 @@ namespace {{packageName}}.Client
 
             if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) // return a datetime object
             {
-                return DateTime.Parse(response.Content.ReadAsStringAsync().Result, null, System.Globalization.DateTimeStyles.RoundtripKind);
+                return DateTime.Parse(response.Content.ReadAsStringAsync().GetAwaiter().GetResult(), null, System.Globalization.DateTimeStyles.RoundtripKind);
             }
 
             if (type == typeof(String) || type.Name.StartsWith("System.Nullable")) // return primitive type
             {
-                return Convert.ChangeType(response.Content.ReadAsStringAsync().Result, type);
+                return Convert.ChangeType(response.Content.ReadAsStringAsync().GetAwaiter().GetResult(), type);
             }
 
             // at this point, it must be a model (json)
             try
             {
-                return JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result, type, _serializerSettings);
+                return JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().GetAwaiter().GetResult(), type, _serializerSettings);
             }
             catch (Exception e)
             {
@@ -444,7 +444,7 @@ namespace {{packageName}}.Client
 
         private ApiResponse<T> Exec<T>(HttpRequestMessage req, IReadableConfiguration configuration)
         {
-            return ExecAsync<T>(req, configuration).Result;
+            return ExecAsync<T>(req, configuration).GetAwaiter().GetResult();
         }
 
         private async Task<ApiResponse<T>> ExecAsync<T>(HttpRequestMessage req,
-- 
GitLab


From 0a4fcadff22a6c2d7c58d15243612f4f3a95bcee Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Mon, 3 May 2021 17:05:57 +0200
Subject: [PATCH 4/9] Updated samples

---
 .../src/Org.OpenAPITools/Client/ApiClient.cs  | 25 +++++++++++--------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Client/ApiClient.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Client/ApiClient.cs
index 26695dd48d4..e5755d27df8 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Client/ApiClient.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Client/ApiClient.cs
@@ -98,13 +98,13 @@ namespace Org.OpenAPITools.Client
 
             if (type == typeof(byte[])) // return byte array
             {
-                return response.Content.ReadAsByteArrayAsync().Result;
+                return response.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult();
             }
 
             // TODO: ? if (type.IsAssignableFrom(typeof(Stream)))
             if (type == typeof(Stream))
             {
-                var bytes = response.Content.ReadAsByteArrayAsync().Result;
+                var bytes = response.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult();
                 if (headers != null)
                 {
                     var filePath = String.IsNullOrEmpty(_configuration.TempFolderPath)
@@ -128,18 +128,18 @@ namespace Org.OpenAPITools.Client
 
             if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) // return a datetime object
             {
-                return DateTime.Parse(response.Content.ReadAsStringAsync().Result, null, System.Globalization.DateTimeStyles.RoundtripKind);
+                return DateTime.Parse(response.Content.ReadAsStringAsync().GetAwaiter().GetResult(), null, System.Globalization.DateTimeStyles.RoundtripKind);
             }
 
             if (type == typeof(String) || type.Name.StartsWith("System.Nullable")) // return primitive type
             {
-                return Convert.ChangeType(response.Content.ReadAsStringAsync().Result, type);
+                return Convert.ChangeType(response.Content.ReadAsStringAsync().GetAwaiter().GetResult(), type);
             }
 
             // at this point, it must be a model (json)
             try
             {
-                return JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result, type, _serializerSettings);
+                return JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().GetAwaiter().GetResult(), type, _serializerSettings);
             }
             catch (Exception e)
             {
@@ -397,10 +397,10 @@ namespace Org.OpenAPITools.Client
         partial void InterceptRequest(HttpRequestMessage req);
         partial void InterceptResponse(HttpRequestMessage req, HttpResponseMessage response);
 
-        private ApiResponse<T> ToApiResponse<T>(HttpResponseMessage response, object responseData, Uri uri)
+        private async Task<ApiResponse<T>> ToApiResponse<T>(HttpResponseMessage response, object responseData, Uri uri)
         {
             T result = (T) responseData;
-            string rawContent = response.Content.ToString();
+            string rawContent = await response.Content.ReadAsStringAsync();
 
             var transformed = new ApiResponse<T>(response.StatusCode, new Multimap<string, string>(), result, rawContent)
             {
@@ -442,7 +442,7 @@ namespace Org.OpenAPITools.Client
 
         private ApiResponse<T> Exec<T>(HttpRequestMessage req, IReadableConfiguration configuration)
         {
-            return ExecAsync<T>(req, configuration).Result;
+            return ExecAsync<T>(req, configuration).GetAwaiter().GetResult();
         }
 
         private async Task<ApiResponse<T>> ExecAsync<T>(HttpRequestMessage req,
@@ -503,6 +503,11 @@ namespace Org.OpenAPITools.Client
                 response = await _httpClient.SendAsync(req, cancellationToken).ConfigureAwait(false);
             }
 
+            if (!response.IsSuccessStatusCode)
+            {
+                return await ToApiResponse<T>(response, default(T), req.RequestUri);
+            }
+			
             object responseData = deserializer.Deserialize<T>(response);
 
             // if the response type is oneOf/anyOf, call FromJSON to deserialize the data
@@ -517,9 +522,7 @@ namespace Org.OpenAPITools.Client
 
             InterceptResponse(req, response);
 
-            var result = ToApiResponse<T>(response, responseData, req.RequestUri);
-
-            return result;
+            return await ToApiResponse<T>(response, responseData, req.RequestUri);
         }
 
         #region IAsynchronousClient
-- 
GitLab


From baf77f982c89cac96f86dc6d35de8ae3932d64e7 Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Tue, 4 May 2021 17:14:06 +0200
Subject: [PATCH 5/9] Updated samples

---
 .../Org.OpenAPITools.Test/Api/PetApiTests.cs  | 41 ++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs
index eca3164a17f..ef48856396d 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs
@@ -34,6 +34,7 @@ namespace Org.OpenAPITools.Test
         private PetApi instance;
 
         private long petId = 11088;
+        private long notExsistentPetId = 99999;
 
         /// <summary>
         /// Create a Pet object
@@ -198,6 +199,26 @@ namespace Org.OpenAPITools.Test
             Assert.Equal("sample category name2", response.Category.Name);
         }
 
+        /// <summary>
+        /// Test GetPetById on an not existent Id
+        /// </summary>
+        [Fact]
+        public void TestGetPetById_TestException()
+        {
+	        PetApi petApi = new PetApi();
+	        var task = petApi.GetPetById(notExsistentPetId);
+
+	        var exception = Assert.Throws<ApiException>(() =>
+	        {
+		        petApi.GetPetById(notExsistentPetId);
+	        });
+
+	        Assert.IsType<ApiException>(exception);
+	        Assert.Equal(404, exception.ErrorCode);
+	        Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.ErrorContent);
+	        Assert.Equal("Error calling GetPetById: {\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.Message);
+        }
+
         /* a simple test for binary response. no longer in use.
         [Fact]
         public void TestGetByIdBinaryResponse()
@@ -241,7 +262,25 @@ namespace Org.OpenAPITools.Test
             Assert.Equal(56, response.Category.Id);
             Assert.Equal("sample category name2", response.Category.Name);
         }
-        
+
+        [Fact]
+        public void TestGetPetByIdWithHttpInfoAsync_Test404Response()
+        {
+	        PetApi petApi = new PetApi();
+	        petApi.ExceptionFactory = null;
+	        var response = petApi.GetPetByIdWithHttpInfoAsync(notExsistentPetId).Result;
+	        Pet result = response.Data;
+
+	        Assert.IsType<ApiResponse<Pet>>(response);
+	        Assert.Equal(404, (int)response.StatusCode);
+	        Assert.True(response.Headers.ContainsKey("Content-Type"));
+	        Assert.Equal("application/json", response.Headers["Content-Type"][0]);
+
+	        Assert.Null(result);
+	        Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", response.RawContent);
+	        Assert.Equal("Not Found", response.ErrorText);
+        }
+
         /// <summary>
         /// Test UpdatePet
         /// </summary>
-- 
GitLab


From ba4f40898bf64486497a6c962429eebec525f191 Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Tue, 4 May 2021 17:14:22 +0200
Subject: [PATCH 6/9] Refactored PetApiTest

---
 .../Org.OpenAPITools.sln                      |  13 +-
 .../Api/PetApiTestsV2.cs                      | 580 ++++++++++++++++++
 .../Org.OpenAPITools.Test.csproj              |   7 -
 .../aspnetcore-5.0/Org.OpenAPITools.sln       |  35 +-
 4 files changed, 607 insertions(+), 28 deletions(-)
 create mode 100644 samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs

diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln
index 61278f3ea0b..5508266f348 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln
@@ -1,10 +1,10 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31129.286
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools.Test", "src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.OpenAPITools.Test", "src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -24,4 +24,7 @@ Global
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
-EndGlobal
\ No newline at end of file
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {1545AFBB-0F19-491A-ABB2-9D981B80E9B8}
+	EndGlobalSection
+EndGlobal
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs
new file mode 100644
index 00000000000..0d52aab66b8
--- /dev/null
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs
@@ -0,0 +1,580 @@
+/* 
+ * OpenAPI Petstore
+ *
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Net.Http;
+using System.Reflection;
+using System.Threading.Tasks;
+using Xunit;
+
+namespace Org.OpenAPITools.Test.Api
+{
+	/// <summary>
+	/// Class for testing PetApi
+	/// </summary>
+	/// <remarks>
+	/// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech).
+	/// Please update the test case below to test the API endpoint.
+	/// </remarks>
+	public class PetApiTests : IDisposable
+	{
+		// CONFIGURE TESTING PARAMETERS HERE
+		private const string BasePath = "https://petstore.swagger.io/v2";
+		private const string AccessToken = "special-key";
+		private const long PetId = 100000;
+	    private const long NotExistentId = 100001;
+
+	    private readonly HttpClient _httpClient = new HttpClient();
+        private readonly PetApi _petApi;
+
+        public PetApiTests()
+        {
+			// prepare the client
+	        _petApi = new PetApi(_httpClient, new Configuration
+	        {
+		        BasePath = BasePath,
+		        AccessToken = AccessToken,
+		        Timeout = 10000,
+		        UserAgent = "TEST_USER_AGENT"
+	        });
+
+            // add a sample pet for the expected PetId
+            _petApi.AddPet(BuildSamplePet());
+
+			// ensure there is not a pet for that ID
+			try
+			{
+				_petApi.DeletePet(NotExistentId, AccessToken);
+			}
+			catch (ApiException ex) when (ex.ErrorCode == 404) { }
+        }
+
+		#region Get
+
+		/// <summary>
+		/// Test GetPetById with an existent Id
+		/// </summary>
+		[Fact]
+        public void GetPetById_GivenExistentId_ReturnsPet()
+        {
+	        Pet expected = BuildSamplePet();
+
+			Pet response = _petApi.GetPetById(PetId);
+
+			Assert.IsType<Pet>(response);
+			Assert.Equal(expected.Name, response.Name);
+			Assert.Equal(expected.Status, response.Status);
+			Assert.IsType<List<Tag>>(response.Tags);
+			Assert.Equal(expected.Tags[0].Id, response.Tags[0].Id);
+			Assert.Equal(expected.Tags[0].Name, response.Tags[0].Name);
+			Assert.IsType<List<string>>(response.PhotoUrls);
+			Assert.Equal(expected.PhotoUrls[0], response.PhotoUrls[0]);
+			Assert.IsType<Category>(response.Category);
+			Assert.Equal(expected.Category.Id, response.Category.Id);
+			Assert.Equal(expected.Category.Name, response.Category.Name);
+		}
+
+		/// <summary>
+		/// Test GetPetById with a not existent Id
+		/// </summary>
+		[Fact]
+		public void GetPetById_GivenNotExistentId_ThrowsApiException()
+		{
+			var exception = Assert.Throws<ApiException>(() =>
+			{
+				_petApi.GetPetById(NotExistentId);
+			});
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+			Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.ErrorContent);
+			Assert.Equal("Error calling GetPetById: {\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.Message);
+		}
+
+		/// <summary>
+		/// Test GetPetByIdWithHttpInfo with an existent Id
+		/// </summary>
+		[Fact]
+		public void GetPetByIdWithHttpInfo_GivenExistentId_Returns200Response()
+		{
+			Pet expected = BuildSamplePet();
+
+			ApiResponse<Pet> response = _petApi.GetPetByIdWithHttpInfo(PetId);
+			Pet result = response.Data;
+
+			Assert.IsType<ApiResponse<Pet>>(response);
+			Assert.Equal(200, (int)response.StatusCode);
+		    Assert.True(response.Headers.ContainsKey("Content-Type"));
+		    Assert.Equal("application/json", response.Headers["Content-Type"][0]);
+
+			Assert.Equal(expected.Name, result.Name);
+			Assert.Equal(expected.Status, result.Status);
+			Assert.IsType<List<Tag>>(result.Tags);
+			Assert.Equal(expected.Tags[0].Id, result.Tags[0].Id);
+			Assert.Equal(expected.Tags[0].Name, result.Tags[0].Name);
+			Assert.IsType<List<string>>(result.PhotoUrls);
+			Assert.Equal(expected.PhotoUrls[0], result.PhotoUrls[0]);
+			Assert.IsType<Category>(result.Category);
+			Assert.Equal(expected.Category.Id, result.Category.Id);
+			Assert.Equal(expected.Category.Name, result.Category.Name);
+		}
+
+		/// <summary>
+		/// Test GetPetByIdWithHttpInfo with a not existent Id and the ExceptionFactory disabled
+		/// </summary>
+		[Fact]
+		public void GetPetByIdWithHttpInfo_GivenNotExistentId_ThrowsApiException()
+		{
+			var exception = Assert.Throws<ApiException>(() =>
+			{
+				_petApi.GetPetByIdWithHttpInfo(NotExistentId);
+			});
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+			Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.ErrorContent);
+			Assert.Equal("Error calling GetPetById: {\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.Message);
+		}
+
+		/// <summary>
+		/// Test GetPetByIdWithHttpInfo with a not existent Id and the ExceptionFactory disabled
+		/// </summary>
+		[Fact]
+		public void GetPetByIdWithHttpInfo_WithoutExceptionFactory_GivenNotExistentId_Returns404Response()
+		{
+			_petApi.ExceptionFactory = null;
+			ApiResponse<Pet> response = _petApi.GetPetByIdWithHttpInfo(NotExistentId);
+			Pet result = response.Data;
+
+			Assert.IsType<ApiResponse<Pet>>(response);
+			Assert.Equal(404, (int)response.StatusCode);
+			Assert.True(response.Headers.ContainsKey("Content-Type"));
+			Assert.Equal("application/json", response.Headers["Content-Type"][0]);
+
+			Assert.Null(result);
+			Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", response.RawContent);
+			Assert.Equal("Not Found", response.ErrorText);
+		}
+
+		#endregion
+
+		#region Get Async
+
+		/// <summary>
+		/// Test GetPetByIdAsync with an existent Id.
+		/// </summary>
+		[Fact]
+		public async Task GetPetByIdAsync_GivenExistentId_ReturnsPet()
+		{
+			Pet expected = BuildSamplePet();
+
+			Pet response = await _petApi.GetPetByIdAsync(PetId);
+
+			Assert.IsType<Pet>(response);
+			Assert.Equal(expected.Name, response.Name);
+			Assert.Equal(expected.Status, response.Status);
+			Assert.IsType<List<Tag>>(response.Tags);
+			Assert.Equal(expected.Tags[0].Id, response.Tags[0].Id);
+			Assert.Equal(expected.Tags[0].Name, response.Tags[0].Name);
+			Assert.IsType<List<string>>(response.PhotoUrls);
+			Assert.Equal(expected.PhotoUrls[0], response.PhotoUrls[0]);
+			Assert.IsType<Category>(response.Category);
+			Assert.Equal(expected.Category.Id, response.Category.Id);
+			Assert.Equal(expected.Category.Name, response.Category.Name);
+		}
+
+		/// <summary>
+		/// Test GetPetByIdAsync with a not existent Id.
+		/// </summary>
+		[Fact]
+		public async Task GetPetByIdAsync_GivenNotExistentId_ThrowsApiException()
+		{
+			var exception = await Assert.ThrowsAsync<ApiException>(() => _petApi.GetPetByIdAsync(NotExistentId));
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+			Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.ErrorContent);
+			Assert.Equal("Error calling GetPetById: {\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.Message);
+		}
+
+		/// <summary>
+		/// Test GetPetByIdWithHttpInfoAsync with an existent Id.
+		/// </summary>
+		[Fact]
+		public async Task GetPetByIdWithHttpInfoAsync_GivenExistentId_Returns200Response()
+		{
+			Pet expected = BuildSamplePet();
+
+			ApiResponse<Pet> response = await _petApi.GetPetByIdWithHttpInfoAsync(PetId);
+			Pet result = response.Data;
+
+			Assert.IsType<ApiResponse<Pet>>(response);
+			Assert.Equal(200, (int)response.StatusCode);
+			Assert.True(response.Headers.ContainsKey("Content-Type"));
+			Assert.Equal("application/json", response.Headers["Content-Type"][0]);
+
+			Assert.Equal(expected.Name, result.Name);
+			Assert.Equal(expected.Status, result.Status);
+			Assert.IsType<List<Tag>>(result.Tags);
+			Assert.Equal(expected.Tags[0].Id, result.Tags[0].Id);
+			Assert.Equal(expected.Tags[0].Name, result.Tags[0].Name);
+			Assert.IsType<List<string>>(result.PhotoUrls);
+			Assert.Equal(expected.PhotoUrls[0], result.PhotoUrls[0]);
+			Assert.IsType<Category>(result.Category);
+			Assert.Equal(expected.Category.Id, result.Category.Id);
+			Assert.Equal(expected.Category.Name, result.Category.Name);
+		}
+
+		/// <summary>
+		/// Test GetPetByIdWithHttpInfoAsync with a not existent Id and the ExceptionFactory disabled.
+		/// </summary>
+		[Fact]
+		public async Task GetPetByIdWithHttpInfoAsync_GivenNotExistentId_ThrowsApiException()
+		{
+			var exception = await Assert.ThrowsAsync<ApiException>(() => _petApi.GetPetByIdWithHttpInfoAsync(NotExistentId));
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+			Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.ErrorContent);
+			Assert.Equal("Error calling GetPetById: {\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", exception.Message);
+		}
+
+		/// <summary>
+		/// Test GetPetByIdWithHttpInfoAsync with a not existent Id and the ExceptionFactory disabled.
+		/// </summary>
+		[Fact]
+		public async Task GetPetByIdWithHttpInfoAsync_WithoutExceptionFactory_GivenNotExistentId_Returns404Response()
+		{
+			_petApi.ExceptionFactory = null;
+			ApiResponse<Pet> response = await _petApi.GetPetByIdWithHttpInfoAsync(NotExistentId);
+			Pet result = response.Data;
+
+			Assert.IsType<ApiResponse<Pet>>(response);
+			Assert.Equal(404, (int)response.StatusCode);
+			Assert.True(response.Headers.ContainsKey("Content-Type"));
+			Assert.Equal("application/json", response.Headers["Content-Type"][0]);
+
+			Assert.Null(result);
+			Assert.Equal("{\"code\":1,\"type\":\"error\",\"message\":\"Pet not found\"}", response.RawContent);
+			Assert.Equal("Not Found", response.ErrorText);
+		}
+
+		#endregion
+
+		#region Find
+
+		/// <summary>
+		/// Test FindPetsByStatus filtering available pets.
+		/// </summary>
+		[Fact(Skip = "too much elements to fetch, the server cut the json content")]
+		public void FindPetsByStatus_ReturnsListOfPetsFiltered()
+		{
+			List<Pet> pets = _petApi.FindPetsByStatus(new List<string>(new[] { "available" }));
+
+			foreach (Pet pet in pets)
+			{
+				Assert.IsType<Pet>(pet);
+				Assert.Equal(Pet.StatusEnum.Available, pet.Status);
+			}
+		}
+
+		#endregion
+
+		#region Add
+
+		/// <summary>
+		/// Test AddPet with an existent Id. The current server beavior is to update the Pet.
+		/// </summary>
+		[Fact]
+		public void AddPet_GivenExistentId_UpdateThePet()
+		{
+			Pet pet = BuildSamplePet();
+
+			_petApi.AddPet(pet);
+		}
+
+		#endregion
+
+		#region AddAsync
+
+		/// <summary>
+		/// Test AddPetAsync with an existent Id. The current server beavior is to update the Pet.
+		/// </summary>
+		[Fact]
+		public async Task AddPetAsync_GivenExistentId_UpdateThePet()
+		{
+			Pet pet = BuildSamplePet();
+
+			await _petApi.AddPetAsync(pet);
+		}
+
+		#endregion
+
+		#region Update
+
+		/// <summary>
+		/// Test UpdatePet with an existent Id.
+		/// </summary>
+		[Fact]
+		public void UpdatePet_GivenExistentId_UpdateThePet()
+		{
+			Pet pet = BuildSamplePet();
+
+			_petApi.UpdatePet(pet);
+		}
+
+		/// <summary>
+		/// Test UpdatePet with a not existent Id. The current server beavior is to create the Pet.
+		/// </summary>
+		[Fact]
+		public void UpdatePet_GivenNotExistentId_UpdateThePet()
+		{
+			Pet pet = BuildSamplePet(i => i.Id = NotExistentId);
+
+			_petApi.UpdatePet(pet);
+		}
+
+		/// <summary>
+		/// Test UpdatePetWithForm with an existent Id.
+		/// </summary>
+		[Fact]
+		public void UpdatePetWithForm_GivenExistentId_UpdatesTheFields()
+		{
+			Pet expected = BuildSamplePet(pet =>
+			{
+				pet.Name = "name updated";
+				pet.Status = Pet.StatusEnum.Pending;
+			});
+
+			_petApi.UpdatePetWithForm(PetId, "name updated", "pending");
+
+			Pet response = _petApi.GetPetById(PetId);
+
+			Assert.IsType<Pet>(response);
+			Assert.Equal(expected.Name, response.Name);
+			Assert.Equal(expected.Status, response.Status);
+			Assert.IsType<List<Tag>>(response.Tags);
+			Assert.Equal(expected.Tags[0].Id, response.Tags[0].Id);
+			Assert.Equal(expected.Tags[0].Name, response.Tags[0].Name);
+			Assert.IsType<List<string>>(response.PhotoUrls);
+			Assert.Equal(expected.PhotoUrls[0], response.PhotoUrls[0]);
+			Assert.IsType<Category>(response.Category);
+			Assert.Equal(expected.Category.Id, response.Category.Id);
+			Assert.Equal(expected.Category.Name, response.Category.Name);
+
+			_petApi.UpdatePetWithForm(PetId, "name updated twice");
+
+			response = _petApi.GetPetById(PetId);
+
+			Assert.Equal("name updated twice", response.Name);
+		}
+
+		/// <summary>
+		/// Test UploadFile with an existent Id.
+		/// </summary>
+		[Fact(Skip = "generates 500 code at the time of test")]
+		public void UploadFile_UploadFileUsingFormParameters_UpdatesTheFields()
+		{
+			var assembly = Assembly.GetExecutingAssembly();
+			using Stream imageStream = assembly.GetManifestResourceStream("Org.OpenAPITools.Test.linux-logo.png");
+			_petApi.UploadFile(PetId, "metadata sample", imageStream);
+		}
+
+		/// <summary>
+		/// Test UploadFile with an existent Id.
+		/// </summary>
+		[Fact(Skip = "generates 500 code at the time of test")]
+		public void UploadFile_UploadFileAlone_UpdatesTheField()
+		{
+			var assembly = Assembly.GetExecutingAssembly();
+			using Stream imageStream = assembly.GetManifestResourceStream("Org.OpenAPITools.Test.linux-logo.png");
+			_petApi.UploadFile(petId: PetId, file: imageStream);
+		}
+
+		#endregion
+
+		#region UpdateAsync
+
+		/// <summary>
+		/// Test UpdatePetAsync with an existent Id.
+		/// </summary>
+		[Fact]
+		public async Task UpdatePetAsync_GivenExistentId_UpdateThePet()
+		{
+			Pet pet = BuildSamplePet();
+
+			await _petApi.UpdatePetAsync(pet);
+		}
+
+		/// <summary>
+		/// Test UpdatePetAsync with a not existent Id. The current server beavior is to create the Pet.
+		/// </summary>
+		[Fact]
+		public async Task UpdatePetAsync_GivenNotExistentId_UpdateThePet()
+		{
+			Pet pet = BuildSamplePet(i => i.Id = NotExistentId);
+
+			await _petApi.UpdatePetAsync(pet);
+		}
+
+		/// <summary>
+		/// Test UpdatePetWithFormAsync with an existent Id.
+		/// </summary>
+		[Fact]
+		public async Task UpdatePetWithFormAsync_GivenExistentId_UpdatesTheFields()
+		{
+			Pet expected = BuildSamplePet(pet =>
+			{
+				pet.Name = "name updated";
+				pet.Status = Pet.StatusEnum.Pending;
+			});
+
+			await _petApi.UpdatePetWithFormAsync(PetId, "name updated", "pending");
+
+			Pet response = await _petApi.GetPetByIdAsync(PetId);
+
+			Assert.IsType<Pet>(response);
+			Assert.Equal(expected.Name, response.Name);
+			Assert.Equal(expected.Status, response.Status);
+			Assert.IsType<List<Tag>>(response.Tags);
+			Assert.Equal(expected.Tags[0].Id, response.Tags[0].Id);
+			Assert.Equal(expected.Tags[0].Name, response.Tags[0].Name);
+			Assert.IsType<List<string>>(response.PhotoUrls);
+			Assert.Equal(expected.PhotoUrls[0], response.PhotoUrls[0]);
+			Assert.IsType<Category>(response.Category);
+			Assert.Equal(expected.Category.Id, response.Category.Id);
+			Assert.Equal(expected.Category.Name, response.Category.Name);
+
+			await _petApi.UpdatePetWithFormAsync(PetId, "name updated twice");
+
+			response = await _petApi.GetPetByIdAsync(PetId);
+
+			Assert.Equal("name updated twice", response.Name);
+		}
+
+		/// <summary>
+		/// Test UploadFileAsync with an existent Id.
+		/// </summary>
+		[Fact(Skip = "generates 500 code at the time of test")]
+		public async Task UploadFileAsync_UploadFileUsingFormParameters_UpdatesTheFields()
+		{
+			var assembly = Assembly.GetExecutingAssembly();
+			await using Stream imageStream = assembly.GetManifestResourceStream("Org.OpenAPITools.Test.linux-logo.png");
+			await _petApi.UploadFileAsync(PetId, "metadata sample", imageStream);
+		}
+
+		/// <summary>
+		/// Test UploadFileAsync with an existent Id.
+		/// </summary>
+		[Fact(Skip = "generates 500 code at the time of test")]
+		public async Task UploadFileAsync_UploadFileAlone_UpdatesTheField()
+		{
+			var assembly = Assembly.GetExecutingAssembly();
+			await using Stream imageStream = assembly.GetManifestResourceStream("Org.OpenAPITools.Test.linux-logo.png");
+			await _petApi.UploadFileAsync(petId: PetId, file: imageStream);
+		}
+
+		#endregion
+
+		#region Delete
+
+		/// <summary>
+		/// Test DeletePet with an existent Id.
+		/// </summary>
+		[Fact]
+		public void DeletePet_GivenExistentId_DeleteThePet()
+		{
+			_petApi.DeletePet(PetId);
+
+			var exception = Assert.Throws<ApiException>(() => _petApi.GetPetById(PetId));
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+		}
+
+		/// <summary>
+		/// Test DeletePet with a not existent Id. The current server beavior is to return 404.
+		/// </summary>
+		[Fact]
+		public void DeletePet_GivenNotExistentId_ThrowsApiException()
+		{
+			var exception = Assert.Throws<ApiException>(() => _petApi.DeletePet(NotExistentId));
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+		}
+
+		#endregion
+
+		#region DeleteAsync
+
+		/// <summary>
+		/// Test DeletePet with an existent Id.
+		/// </summary>
+		[Fact]
+		public async Task DeletePetAsync_GivenExistentId_DeleteThePet()
+		{
+			await _petApi.DeletePetAsync(PetId);
+
+			var exception = Assert.Throws<ApiException>(() => _petApi.GetPetById(PetId));
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+		}
+
+		/// <summary>
+		/// Test DeletePet with a not existent Id. The current server beavior is to return 404.
+		/// </summary>
+		[Fact]
+		public async Task DeletePetAsync_GivenNotExistentId_ThrowsApiException()
+		{
+			var exception = await Assert.ThrowsAsync<ApiException>(() => _petApi.DeletePetAsync(NotExistentId));
+
+			Assert.IsType<ApiException>(exception);
+			Assert.Equal(404, exception.ErrorCode);
+		}
+
+		#endregion
+
+		private static Pet BuildSamplePet(Action<Pet> callback = null)
+		{
+			var pet = new Pet(
+				name: "csharp test",
+				photoUrls: new List<string> { "http://petstore.com/csharp_test" })
+			{
+				Id = PetId,
+				Status = Pet.StatusEnum.Available,
+				Category = new Category { Id = 10, Name = "sample category" },
+				Tags = new List<Tag> { new Tag { Id = 100, Name = "sample tag" } }
+			};
+
+			callback?.Invoke(pet);
+
+			return pet;
+		}
+
+		public void Dispose()
+        {
+	        // remove the pet after testing
+	        try
+            {
+	            _petApi.DeletePet(PetId, AccessToken);
+            }
+            catch (ApiException ex) when (ex.ErrorCode == 404) { }
+
+			_petApi.Dispose();
+            _httpClient.Dispose();
+        }
+    }
+}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj
index dcc1208d75c..e44ebdd648a 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj
@@ -8,7 +8,6 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.2" />
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
   </ItemGroup>
@@ -17,10 +16,4 @@
     <ProjectReference Include="..\Org.OpenAPITools\Org.OpenAPITools.csproj" />
   </ItemGroup>
 
-  <ItemGroup>
-    <None Remove="linux-logo.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="**/*" />
-  </ItemGroup>
 </Project>
diff --git a/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln b/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln
index c2bc3876420..139231e41f6 100644
--- a/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln
+++ b/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln
@@ -1,22 +1,25 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27428.2043
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31129.286
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}"
 EndProject
 Global
-    GlobalSection(SolutionConfigurationPlatforms) = preSolution
-        Debug|Any CPU = Debug|Any CPU
-        Release|Any CPU = Release|Any CPU
-    EndGlobalSection
-    GlobalSection(ProjectConfigurationPlatforms) = postSolution
-        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.Build.0 = Release|Any CPU
-    EndGlobalSection
-    GlobalSection(SolutionProperties) = preSolution
-        HideSolutionNode = FALSE
-    EndGlobalSection
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {6AC7DED5-0F52-4187-9BC1-74437AAEE42D}
+	EndGlobalSection
 EndGlobal
-- 
GitLab


From 29c57a51617945d12105e102145e74f5cf9056cf Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Tue, 4 May 2021 17:20:01 +0200
Subject: [PATCH 7/9] Updated samples

---
 .../OpenAPIClient-httpclient/Org.OpenAPITools.sln   | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln
index 5508266f348..61278f3ea0b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/Org.OpenAPITools.sln
@@ -1,10 +1,10 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.31129.286
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.OpenAPITools.Test", "src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools.Test", "src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -24,7 +24,4 @@ Global
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {1545AFBB-0F19-491A-ABB2-9D981B80E9B8}
-	EndGlobalSection
-EndGlobal
+EndGlobal
\ No newline at end of file
-- 
GitLab


From 3aac63d45bad8395fa1a372f1092cbcc700bf066 Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Wed, 5 May 2021 11:04:54 +0200
Subject: [PATCH 8/9] Fixed test issues

---
 .../src/Org.OpenAPITools.Test/Api/PetApiTests.cs    |  1 -
 .../src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs  | 13 ++++++-------
 .../Org.OpenAPITools.Test.csproj                    |  8 ++++++++
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs
index ef48856396d..83b978b9301 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs
@@ -206,7 +206,6 @@ namespace Org.OpenAPITools.Test
         public void TestGetPetById_TestException()
         {
 	        PetApi petApi = new PetApi();
-	        var task = petApi.GetPetById(notExsistentPetId);
 
 	        var exception = Assert.Throws<ApiException>(() =>
 	        {
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs
index 0d52aab66b8..e00f3d61467 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Api/PetApiTestsV2.cs
@@ -27,24 +27,23 @@ namespace Org.OpenAPITools.Test.Api
 	/// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech).
 	/// Please update the test case below to test the API endpoint.
 	/// </remarks>
-	public class PetApiTests : IDisposable
+	public class PetApiTestsV2 : IDisposable
 	{
 		// CONFIGURE TESTING PARAMETERS HERE
-		private const string BasePath = "https://petstore.swagger.io/v2";
-		private const string AccessToken = "special-key";
+		// see the Integration Test Wiki for details: https://github.com/OpenAPITools/openapi-generator/wiki/Integration-Tests
+		private const string BasePath = "http://petstore.swagger.io/v2";
 		private const long PetId = 100000;
 	    private const long NotExistentId = 100001;
 
 	    private readonly HttpClient _httpClient = new HttpClient();
         private readonly PetApi _petApi;
 
-        public PetApiTests()
+        public PetApiTestsV2()
         {
 			// prepare the client
 	        _petApi = new PetApi(_httpClient, new Configuration
 	        {
 		        BasePath = BasePath,
-		        AccessToken = AccessToken,
 		        Timeout = 10000,
 		        UserAgent = "TEST_USER_AGENT"
 	        });
@@ -55,7 +54,7 @@ namespace Org.OpenAPITools.Test.Api
 			// ensure there is not a pet for that ID
 			try
 			{
-				_petApi.DeletePet(NotExistentId, AccessToken);
+				_petApi.DeletePet(NotExistentId);
 			}
 			catch (ApiException ex) when (ex.ErrorCode == 404) { }
         }
@@ -569,7 +568,7 @@ namespace Org.OpenAPITools.Test.Api
 	        // remove the pet after testing
 	        try
             {
-	            _petApi.DeletePet(PetId, AccessToken);
+	            _petApi.DeletePet(PetId);
             }
             catch (ApiException ex) when (ex.ErrorCode == 404) { }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj
index e44ebdd648a..20f33144c2a 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj
@@ -7,6 +7,10 @@
     <IsPackable>false</IsPackable>
   </PropertyGroup>
 
+  <ItemGroup>
+    <None Remove="linux-logo.png" />
+  </ItemGroup>
+
   <ItemGroup>
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
@@ -16,4 +20,8 @@
     <ProjectReference Include="..\Org.OpenAPITools\Org.OpenAPITools.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <EmbeddedResource Include="linux-logo.png" />
+  </ItemGroup>
+
 </Project>
-- 
GitLab


From df32f0ae256166f137c5cc21ead6a02f72fb1039 Mon Sep 17 00:00:00 2001
From: Luca Mazzanti <lucamazzanti83@gmail.com>
Date: Wed, 5 May 2021 13:27:08 +0200
Subject: [PATCH 9/9] reverted previous commit

---
 .../aspnetcore-5.0/Org.OpenAPITools.sln       | 35 +++++++++----------
 1 file changed, 16 insertions(+), 19 deletions(-)

diff --git a/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln b/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln
index 139231e41f6..c2bc3876420 100644
--- a/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln
+++ b/samples/server/petstore/aspnetcore-5.0/Org.OpenAPITools.sln
@@ -1,25 +1,22 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.31129.286
+# Visual Studio 15
+VisualStudioVersion = 15.0.27428.2043
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}"
 EndProject
 Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {6AC7DED5-0F52-4187-9BC1-74437AAEE42D}
-	EndGlobalSection
+    GlobalSection(SolutionConfigurationPlatforms) = preSolution
+        Debug|Any CPU = Debug|Any CPU
+        Release|Any CPU = Release|Any CPU
+    EndGlobalSection
+    GlobalSection(ProjectConfigurationPlatforms) = postSolution
+        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+        {3C799344-F285-4669-8FD5-7ED9B795D5C5}.Release|Any CPU.Build.0 = Release|Any CPU
+    EndGlobalSection
+    GlobalSection(SolutionProperties) = preSolution
+        HideSolutionNode = FALSE
+    EndGlobalSection
 EndGlobal
-- 
GitLab