@@ -8,6 +8,8 @@ namespace ApiCodeGenerator.OpenApi.Refit.Tests
88{
99 public class FunctionalTests
1010 {
11+ private const string NS = "TestNS" ;
12+
1113 [ Test ]
1214 public void GenerateClientInterface ( )
1315 {
@@ -16,7 +18,7 @@ public void GenerateClientInterface()
1618 {
1719 GenerateClientInterfaces = true ,
1820 } ;
19- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
21+ settings . CSharpGeneratorSettings . Namespace = NS ;
2022 var expected =
2123 " public partial interface IClient\n " +
2224 " {\n " +
@@ -48,7 +50,7 @@ public void GenerateClientInterface_Query()
4850 {
4951 GenerateClientInterfaces = true ,
5052 } ;
51- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
53+ settings . CSharpGeneratorSettings . Namespace = NS ;
5254 var expected =
5355 " public partial interface IClient\n " +
5456 " {\n " +
@@ -95,7 +97,7 @@ public void GenerateClientInterface_HeaderWithAlias()
9597 var settings = new RefitCodeGeneratorSettings
9698 {
9799 GenerateClientInterfaces = true ,
98- CSharpGeneratorSettings = { Namespace = "TestNS" } ,
100+ CSharpGeneratorSettings = { Namespace = NS } ,
99101 } ;
100102
101103 var expected =
@@ -119,7 +121,7 @@ public void GenerateClientInterface_BaseInterface()
119121 {
120122 GenerateClientInterfaces = true ,
121123 ClientBaseInterface = "IBase, IBase2" ,
122- CSharpGeneratorSettings = { Namespace = "TestNS" } ,
124+ CSharpGeneratorSettings = { Namespace = NS } ,
123125 } ;
124126 var expected =
125127 " public partial interface IClient : IBase, IBase2\n " +
@@ -153,7 +155,7 @@ public void GenerateClientInterface_InterfaceAccesModifier()
153155 GenerateClientInterfaces = true ,
154156 InterfaceAccessModifier = "internal" ,
155157 } ;
156- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
158+ settings . CSharpGeneratorSettings . Namespace = NS ;
157159 var expected =
158160 " internal partial interface IClient\n " +
159161 " {\n " +
@@ -187,7 +189,7 @@ public void GenerateClientInterface_AsyncSuffix_CancelationToken()
187189 OperationAsyncSuffix = true ,
188190 GenerateOptionalParameters = true ,
189191 OperationCancelationToken = true ,
190- CSharpGeneratorSettings = { Namespace = "TestNS" } ,
192+ CSharpGeneratorSettings = { Namespace = NS } ,
191193 } ;
192194
193195 var expected =
@@ -225,7 +227,7 @@ public void GenerateClientInterface_ApiResponseOperations()
225227 WrapResponses = true ,
226228 WrapResponseMethods = new [ ] { "Client.GetTestOper" } ,
227229 } ;
228- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
230+ settings . CSharpGeneratorSettings . Namespace = NS ;
229231 var expectedIntefaceDeclaration =
230232 " public partial interface IClient\n " +
231233 " {\n " +
@@ -270,7 +272,7 @@ public void GenerateClientInterface_ApiResponseOperations_PathExtract()
270272 WrapResponses = true ,
271273 WrapResponseMethods = new [ ] { "Client.GetTestOper" } ,
272274 } ;
273- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
275+ settings . CSharpGeneratorSettings . Namespace = NS ;
274276 var expectedIntefaceDeclaration =
275277 " public partial interface IClient\n " +
276278 " {\n " +
@@ -312,7 +314,7 @@ public void GenerateClientInterface_MultipleClientsFromPathSegments()
312314 GenerateClientInterfaces = true ,
313315 OperationNameGenerator = new MultipleClientsFromPathSegmentsOperationNameGenerator ( ) ,
314316 } ;
315- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
317+ settings . CSharpGeneratorSettings . Namespace = NS ;
316318 var document = OpenApiDocument . FromFileAsync ( GetSwaggerPath ( "testSchema.json" ) ) . Result ;
317319 var openApiPathItem = new OpenApiPathItem
318320 {
@@ -368,7 +370,7 @@ public void GenerateClientInterface_PathExtract()
368370 GenerateClientInterfaces = true ,
369371 PathExtractExpression = @"^testService\/(.*)$" ,
370372 } ;
371- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
373+ settings . CSharpGeneratorSettings . Namespace = NS ;
372374 var expected =
373375 " public partial interface IClient\n " +
374376 " {\n " +
@@ -401,7 +403,7 @@ public void GenerateClientInterface_PathExtract_NotMatched()
401403 GenerateClientInterfaces = true ,
402404 PathExtractExpression = @"^notmatch\/(.*)$" ,
403405 } ;
404- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
406+ settings . CSharpGeneratorSettings . Namespace = NS ;
405407 var expected =
406408 " public partial interface IClient\n " +
407409 " {\n " +
@@ -433,7 +435,7 @@ public void GenerateClientInterface_BringDefaultParamsToEnd()
433435 {
434436 GenerateClientInterfaces = true ,
435437 } ;
436- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
438+ settings . CSharpGeneratorSettings . Namespace = NS ;
437439 settings . GenerateOptionalParameters = true ;
438440 var expected =
439441 " public partial interface IClient\n " +
@@ -462,7 +464,7 @@ public void GenerateClientInterface_NotBringDefaultParamsToEnd_IfOptParamDisable
462464 {
463465 GenerateClientInterfaces = true ,
464466 } ;
465- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
467+ settings . CSharpGeneratorSettings . Namespace = NS ;
466468 settings . GenerateOptionalParameters = false ;
467469 var expected =
468470 " public partial interface IClient\n " +
@@ -492,7 +494,7 @@ public void ExcludeParam()
492494 ExcludedParameterNames = [
493495 "paramWithDef"
494496 ] ,
495- CSharpGeneratorSettings = { Namespace = "TestNS" } ,
497+ CSharpGeneratorSettings = { Namespace = NS } ,
496498 } ;
497499
498500 var expected =
@@ -522,7 +524,7 @@ public void GenerateClientInterface_AuthHeaderParameter()
522524 GenerateClientInterfaces = true ,
523525 AuthorizationHeaderParameter = true ,
524526 } ;
525- settings . CSharpGeneratorSettings . Namespace = "TestNS" ;
527+ settings . CSharpGeneratorSettings . Namespace = NS ;
526528 settings . GenerateOptionalParameters = false ;
527529 var expected =
528530 " public partial interface IClient\n " +
@@ -552,7 +554,7 @@ public void GenerateClientInterface_BinaryResponse()
552554 GenerateOptionalParameters = false ,
553555 CSharpGeneratorSettings =
554556 {
555- Namespace = "TestNS" ,
557+ Namespace = NS ,
556558 } ,
557559 } ;
558560
@@ -567,5 +569,66 @@ public void GenerateClientInterface_BinaryResponse()
567569
568570 RunTest ( settings , expected , "streamResponse.yaml" , " \n " ) ;
569571 }
572+
573+ [ Test ]
574+ public async Task GenerateClientInterface_DtoForResponses ( )
575+ {
576+ var yaml = """
577+ openapi: 3.0.0
578+ info:
579+ title: inlined response schema
580+ version: 1.0.0
581+ paths:
582+ /test:
583+ get:
584+ responses:
585+ "200":
586+ description: OK
587+ "400":
588+ description: Bad
589+ content:
590+ "application/json":
591+ schema:
592+ type: object
593+ properties:
594+ errorCode:
595+ type: string
596+ errorMessage:
597+ type: string
598+ additionalProperties: false
599+ """ ;
600+ var doc = await OpenApiYamlDocument . FromYamlAsync ( yaml ) ;
601+ var settings = new RefitCodeGeneratorSettings
602+ {
603+ GenerateClientInterfaces = true ,
604+ CSharpGeneratorSettings =
605+ {
606+ Namespace = NS ,
607+ } ,
608+ } ;
609+
610+ var expected =
611+ " public partial interface IClient\n " +
612+ " {\n " +
613+ " /// <returns>OK</returns>\n " +
614+ " /// <exception cref=\" Refit.ApiException\" >A server side error occurred.</exception>\n " +
615+ " [Get(\" /test\" )]\n " +
616+ " System.Threading.Tasks.Task Test();\n " +
617+ "\n " +
618+ " }\n " ;
619+
620+ var response = " " + GENERATED_CODE + "\n " +
621+ " public partial class TestResponse400\n " +
622+ " {\n " +
623+ " [Newtonsoft.Json.JsonProperty(\" errorCode\" , Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]\n " +
624+ " public string ErrorCode { get; set; }\n " +
625+ "\n " +
626+ " [Newtonsoft.Json.JsonProperty(\" errorMessage\" , Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]\n " +
627+ " public string ErrorMessage { get; set; }\n " +
628+ "\n " +
629+ " }\n " ;
630+
631+ RunTest ( settings , expected , doc , response ) ;
632+ }
570633 }
571634}
0 commit comments