diff --git a/src/Refitter.Core/RefitInterfaceImports.cs b/src/Refitter.Core/RefitInterfaceImports.cs index 7787f0f05..a037468bc 100644 --- a/src/Refitter.Core/RefitInterfaceImports.cs +++ b/src/Refitter.Core/RefitInterfaceImports.cs @@ -44,7 +44,7 @@ public static string[] GetImportedNamespaces(RefitGeneratorSettings settings) namespaces = namespaces.Except(excludedNamespaces).ToList(); } - if (settings.GenerateMultipleFiles && settings.ContractsNamespace is not null) + if (settings.ContractsNamespace is not null && settings.Namespace != settings.ContractsNamespace) { namespaces.Add(settings.ContractsNamespace); } diff --git a/src/Refitter.Tests/SwaggerPetstoreTests.cs b/src/Refitter.Tests/SwaggerPetstoreTests.cs index b72532c7b..1033c9ec1 100644 --- a/src/Refitter.Tests/SwaggerPetstoreTests.cs +++ b/src/Refitter.Tests/SwaggerPetstoreTests.cs @@ -848,4 +848,22 @@ public async Task Can_Generate_Interfaces_Filtered_By_Path_Match(SampleOpenSpeci generateCode.Should().Contain("\"/pet\""); generateCode.Should().Contain("\"/pet/{petId}\""); } + + [Theory] + [InlineData(SampleOpenSpecifications.SwaggerPetstoreJsonV3, "SwaggerPetstore.json")] +#if !DEBUG + [InlineData(SampleOpenSpecifications.SwaggerPetstoreYamlV3, "SwaggerPetstore.yaml")] + [InlineData(SampleOpenSpecifications.SwaggerPetstoreJsonV2, "SwaggerPetstore.json")] + [InlineData(SampleOpenSpecifications.SwaggerPetstoreYamlV2, "SwaggerPetstore.yaml")] +#endif + public async Task Can_Import_Contracts_Namespace(SampleOpenSpecifications version, string filename) + { + var settings = new RefitGeneratorSettings { ContractsNamespace = "Contracts" }; + var generateCode = await GenerateCode(version, filename, settings); + generateCode.Should().Contain("using Contracts;"); + BuildHelper + .BuildCSharp(generateCode) + .Should() + .BeTrue(); + } }