Skip to content

Commit f632dfc

Browse files
Merge pull request #1163 from christianhelle/copilot/fix-1157
Fix ArgumentException in OpenApiCSharpCodeGenerator.Sanitize method
2 parents 8a7c5bd + 8dae3c2 commit f632dfc

File tree

2 files changed

+39
-9
lines changed

2 files changed

+39
-9
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System.Reflection;
2+
using Rapicgen.Core.Generators.OpenApi;
3+
using Xunit;
4+
5+
namespace ApiClientCodeGen.Core.Tests.Generators.OpenApi
6+
{
7+
public class OpenApiCSharpCodeGeneratorSanitizeTests
8+
{
9+
[Fact]
10+
public void Sanitize_Removes_SystemNetMime_Using_Statement()
11+
{
12+
// Arrange
13+
const string codeWithMimeUsing = "using System;\nusing System.Net.Mime;\nnamespace Test {}";
14+
const string expectedResult = "using System;\n\nnamespace Test {}";
15+
16+
// Get the private Sanitize method through reflection
17+
var sanitizeMethod = typeof(OpenApiCSharpCodeGenerator)
18+
.GetMethod("Sanitize", BindingFlags.NonPublic | BindingFlags.Static);
19+
20+
// Act
21+
var result = sanitizeMethod?.Invoke(null, new object[] { codeWithMimeUsing }) as string;
22+
23+
// Assert
24+
Assert.Equal(expectedResult, result);
25+
}
26+
}
27+
}

src/Core/ApiClientCodeGen.Core/Generators/OpenApi/OpenApiCSharpCodeGenerator.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,18 @@ public string GenerateCode(IProgressReporter? pGenerateProgress)
8181
if (openApiGeneratorOptions.UseConfigurationFile)
8282
{
8383
var extension = Path.GetExtension(swaggerFile);
84-
var configFilename = swaggerFile.Replace(extension, $".config{extension}");
85-
var jsonConfigFilename = swaggerFile.Replace(extension, ".config.json");
86-
var yamlConfigFilename = swaggerFile.Replace(extension, ".config.yaml");
87-
88-
var configFilenames = new[] { configFilename, jsonConfigFilename, yamlConfigFilename };
89-
var configFile = Array.Find(configFilenames, File.Exists);
90-
if (configFile != null)
84+
if (extension != null)
9185
{
92-
arguments += $"-c \"{configFile}\" ";
86+
var configFilename = swaggerFile.Replace(extension, $".config{extension}");
87+
var jsonConfigFilename = swaggerFile.Replace(extension, ".config.json");
88+
var yamlConfigFilename = swaggerFile.Replace(extension, ".config.yaml");
89+
90+
var configFilenames = new[] { configFilename, jsonConfigFilename, yamlConfigFilename };
91+
var configFile = Array.Find(configFilenames, File.Exists);
92+
if (configFile != null)
93+
{
94+
arguments += $"-c \"{configFile}\" ";
95+
}
9396
}
9497
}
9598

@@ -167,6 +170,6 @@ public string GenerateCode(IProgressReporter? pGenerateProgress)
167170
}
168171

169172
private static string Sanitize(string code) =>
170-
code.Replace("using System.Net.Mime;", null);
173+
code.Replace("using System.Net.Mime;", string.Empty);
171174
}
172175
}

0 commit comments

Comments
 (0)