Exemple #1
0
        private static async Task GenerateGlossarySdk()
        {
            if (!baseUrl.EndsWith("/"))
            {
                baseUrl += "/";
            }
            var url      = baseUrl + "swagger/v1/swagger.json";
            var document = await SwaggerDocument.FromUrlAsync(url);

            var settings = new SwaggerToCSharpClientGeneratorSettings
            {
                ClassName = "GlossaryClient",
                GenerateClientInterfaces = true,
                OperationNameGenerator   = new SingleClientFromOperationIdOperationNameGenerator(),
                ExceptionClass           = "GlossaryClientException",
                InjectHttpClient         = true,
                CSharpGeneratorSettings  =
                {
                    Namespace  = "Glossary.Client",
                    ClassStyle = NJsonSchema.CodeGeneration.CSharp.CSharpClassStyle.Poco,
                    ArrayType  = "System.Collections.Generic.List"
                }
            };

            var generator = new SwaggerToCSharpClientGenerator(document, settings);
            var code      = generator.GenerateFile();

            code = code.Replace("Required = Newtonsoft.Json.Required.Always", "Required = Newtonsoft.Json.Required.Default");
            var path = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\..\\Client\\GlossaryClient.cs"));

            File.WriteAllText(path, code);
            Console.WriteLine("Glossary sdk generated");
        }
Exemple #2
0
        private static async Task GeneratePaymentSdk()
        {
            if (!baseUrl.EndsWith("/"))
            {
                baseUrl += "/";
            }
            var url      = baseUrl + "swagger/v1/swagger.json";
            var document = await SwaggerDocument.FromUrlAsync(url);

            var settings = new SwaggerToCSharpClientGeneratorSettings
            {
                ClassName = "ApiClient",
                GenerateClientInterfaces = true,
                OperationNameGenerator   = new SingleClientFromOperationIdOperationNameGenerator(),
                ExceptionClass           = "ApiClientException",
                InjectHttpClient         = true,
                CSharpGeneratorSettings  =
                {
                    Namespace  = "ServerlessTemplate",
                    ClassStyle = NJsonSchema.CodeGeneration.CSharp.CSharpClassStyle.Poco,
                    ArrayType  = "System.Collections.Generic.List"
                },
            };

            var generator = new SwaggerToCSharpClientGenerator(document, settings);
            var code      = generator.GenerateFile();
            var path      = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\..\\Client\\ApiClient.cs"));

            File.WriteAllText(path, code);
            Console.WriteLine("Api client generated");
        }
Exemple #3
0
        public static (bool isSinlgeClient, string typeName) GenerateCSharp(SwaggerDocument document, ApiClientDefinition definition)
        {
            var nameGenerator = new CustomNameGenerator();
            var settings      = new SwaggerToCSharpClientGeneratorSettings()
            {
                GenerateSyncMethods        = true,
                OperationNameGenerator     = nameGenerator,
                GenerateOptionalParameters = true,
            };

            settings.CSharpGeneratorSettings.ClassStyle            = CSharpClassStyle.Poco;
            settings.CSharpGeneratorSettings.Namespace             = definition.Namespace;
            settings.CSharpGeneratorSettings.ArrayType             = "System.Collections.Generic.List";
            settings.CSharpGeneratorSettings.PropertyNameGenerator =
                new MyPropertyNameGenerator(c => ConversionUtilities.ConvertToUpperCamelCase(c, true));


            var generator = new SwaggerToCSharpClientGenerator(document, settings);
            var csharp    = generator.GenerateFile();

            var newClient = InjectWrapperClass(csharp, Path.GetFileNameWithoutExtension(definition.CSharpClient), document, settings.OperationNameGenerator, out var isSinlgeClient, out var wrapperTypeName);

            definition.IsSingleClient = isSinlgeClient;

            if (definition.GenerateWrapperClass)
            {
                csharp = newClient;
            }

            File.WriteAllText(definition.CSharpClient, csharp);

            return(isSinlgeClient, wrapperTypeName);
        }
        public static void WriteServices(FileInfo inputSchema, FileInfo outputCSharp, SwaggerToCSharpClientGeneratorSettings settings)
        {
            SwaggerDocument document;

            try
            {
                document = SwaggerDocument.FromFileAsync(inputSchema.FullName).Result;
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
                throw;
            }

            SwaggerToCSharpClientGenerator generator = new SwaggerToCSharpClientGenerator(document, settings);

            try
            {
                File.WriteAllText(outputCSharp.FullName, generator.GenerateFile());
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
                throw;
            }
        }
Exemple #5
0
        public async Task GenerateAsync()
        {
            //var httpClient = new System.Net.Http.HttpClient();

            //string content = await httpClient.GetStringAsync("https://qa.trunovate.com/entitymanager/swagger/1.1.0.0/swagger.json");

            string content = File.ReadAllText(Swagger);

            var dir = Path.GetFullPath(Output);

            var fileSink = new FileSink(dir);

            var document = await SwaggerDocument.FromJsonAsync(content);

            var settings = new SwaggerToCSharpClientGeneratorSettings
            {
                CSharpGeneratorSettings =
                {
                    TemplateFactory = new SwaggerTemplateFactory(document, fileSink, Subsystem, ServiceName)
                }
            };

            var generator = new SwaggerToCSharpClientGenerator(document, settings);

            _ = generator.GenerateFile();

            Console.WriteLine(dir);
        }
Exemple #6
0
        public static async Task Main(string[] args)
        {
            var document = await SwaggerDocument.FromUrlAsync("http://localhost:49530/swagger/docs/v1");

            var settings = new SwaggerToCSharpClientGeneratorSettings
            {
                ClassName = "CarClient",
                CSharpGeneratorSettings = { Namespace = "Example" }
            };

            var generator = new SwaggerToCSharpClientGenerator(document, settings);

            var code           = generator.GenerateFile();
            var clientFilePath = Path.Combine(Assembly.GetExecutingAssembly().Location, "../../../CarClient.cs");

            if (!File.Exists(clientFilePath))
            {
                File.Create(clientFilePath);
            }

            using (var tw = new StreamWriter(clientFilePath, false))
            {
                await tw.WriteAsync(code).ConfigureAwait(false);
            }
        }
Exemple #7
0
        private static void BuildAssemblySingleClientFromOpId(SwaggerDocument document, string location, AssemblyName name, string nameSpace, ref string typeName, ConnectionProperties props)
        {
            typeName = "Client";
            var settings = new SwaggerToCSharpClientGeneratorSettings
            {
                GenerateClientClasses      = true,
                GenerateOptionalParameters = true,

                ClassName = "{controller}Client",
                OperationNameGenerator  = new SingleClientFromOperationIdOperationNameGenerator(),
                CSharpGeneratorSettings =
                {
                    Namespace = nameSpace
                },
            };

            if (props.InjectHttpClient)
            {
                settings.DisposeHttpClient           = false;
                settings.ClientBaseClass             = nameSpace + ".MyClient";
                settings.UseHttpClientCreationMethod = true;
                settings.DisposeHttpClient           = props.DisposeHttpClient;
            }

            var generator = new SwaggerToCSharpClientGenerator(document, settings);

            var code = generator.GenerateFile();

            code = AddHttpClientInjectCode(code, props, nameSpace);

            CompilerResults results;
            var             assemblyNames = new List <string>()
            {
                "System.dll",
                "System.Core.dll",
                "System.Xml.dll",
                "System.Xml.Linq.dll",
                "System.Runtime.Serialization.dll",
                "System.Net.Http.dll",
                "LINQPad.exe",
                "System.ComponentModel.DataAnnotations.dll",
            };

            assemblyNames.Add(Path.Combine(location, "Newtonsoft.Json.dll"));

            using (var codeProvider = new CSharpCodeProvider())
            {
                var options = new CompilerParameters(
                    assemblyNames.ToArray(),
                    name.CodeBase,
                    true);
                results = codeProvider.CompileAssemblyFromSource(options, code);
            }

            if (results.Errors.Count > 0)
            {
                throw new Exception
                          ("Cannot compile typed context: " + results.Errors[0].ErrorText + " (line " + results.Errors[0].Line + ")");
            }
        }
Exemple #8
0
        public void When_parameters_have_same_name_then_they_are_renamed()
        {
            //// Arrange
            var document = new SwaggerDocument();

            document.Paths["foo"] = new SwaggerPathItem
            {
                {
                    SwaggerOperationMethod.Get, new SwaggerOperation
                    {
                        Parameters =
                        {
                            new SwaggerParameter
                            {
                                Kind = SwaggerParameterKind.Query,
                                Name = "foo"
                            },
                            new SwaggerParameter
                            {
                                Kind = SwaggerParameterKind.Header,
                                Name = "foo"
                            },
                        }
                    }
                }
            };

            //// Act
            var generator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());
            var code      = generator.GenerateFile();

            //// Assert
            Assert.IsTrue(code.Contains("FooAsync(object fooQuery, object fooHeader, System.Threading.CancellationToken cancellationToken)"));
        }
Exemple #9
0
 public async Task <string> RunAsync()
 {
     return(await Task.Run(() =>
     {
         var clientGenerator = new SwaggerToCSharpClientGenerator(InputSwaggerService, Settings);
         return clientGenerator.GenerateFile();
     }));
 }
        private void GenerateContracts(Dictionary <string, string> result, SwaggerToCSharpClientGenerator clientGenerator)
        {
            var savedNamespace = Settings.CSharpGeneratorSettings.Namespace;

            Settings.CSharpGeneratorSettings.Namespace     = ContractsNamespace;
            result[ContractsOutputFilePath ?? "Contracts"] = clientGenerator.GenerateFile(ClientGeneratorOutputType.Contracts);
            Settings.CSharpGeneratorSettings.Namespace     = savedNamespace;
        }
        private void GenerateImplementation(Dictionary <string, string> result, SwaggerToCSharpClientGenerator clientGenerator)
        {
            var savedAdditionalNamespaceUsages = Settings.AdditionalNamespaceUsages?.ToArray();

            Settings.AdditionalNamespaceUsages =
                Settings.AdditionalNamespaceUsages?.Concat(new[] { ContractsNamespace }).ToArray() ?? new[] { ContractsNamespace };
            result[OutputFilePath ?? "Implementation"] = clientGenerator.GenerateFile(ClientGeneratorOutputType.Implementation);
            Settings.AdditionalNamespaceUsages         = savedAdditionalNamespaceUsages;
        }
Exemple #12
0
        public string Gen(SwaggerDocument service, SwaggerToolSettings setting)
        {
            var settings = new SwaggerToCSharpClientGeneratorSettings()
            {
                ClassName = setting.CSharpGen.ClassName,
                CSharpGeneratorSettings = { Namespace = setting.CSharpGen.Namespace }
            };
            var generator = new SwaggerToCSharpClientGenerator(service, settings);
            var code      = generator.GenerateFile();

            return(code);
        }
Exemple #13
0
        public async Task When_operation_is_HTTP_head_then_no_content_is_not_used()
        {
            //// Arrange
            var generator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document  = await generator.GenerateForControllerAsync <HeadRequestController>();

            //// Act
            var codeGen = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());
            var code    = codeGen.GenerateFile();

            //// Assert
            Assert.IsFalse(code.Contains("System.Net.Http.StringContent"));
        }
Exemple #14
0
        public async Task GenerateCSharp()
        {
            var document = await GetSwaggerDocument();

            var settings = new SwaggerToCSharpClientGeneratorSettings()
            {
                GenerateSyncMethods = true
            };

            var generator = new SwaggerToCSharpClientGenerator(document, settings);

            File.WriteAllText(CSharpPath, generator.GenerateFile());
        }
        public async Task When_code_is_generated_then_by_default_the_system_httpclient_is_used()
        {
            //// Arrange
            var swaggerGenerator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document         = await swaggerGenerator.GenerateForControllerAsync <FooController>();

            var generator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());

            //// Act
            var code = generator.GenerateFile();

            //// Assert
            Assert.Contains("var client_ = new System.Net.Http.HttpClient();", code);
        }
        public async Task When_parameter_name_is_reserved_keyword_then_it_is_appended_with_at()
        {
            //// Arrange
            var swaggerGenerator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document         = await swaggerGenerator.GenerateForControllerAsync <FooController>();

            var generator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());

            //// Act
            var code = generator.GenerateFile();

            //// Assert
            Assert.Contains("Task<object> GetPersonAsync(bool? @override, ", code);
        }
Exemple #17
0
        public async Task GenerateCSharp()
        {
            var document = await GetSwaggerDocument();

            var settings = new SwaggerToCSharpClientGeneratorSettings()
            {
                GenerateSyncMethods = true,
            };

            var generator = new SwaggerToCSharpClientGenerator(document, settings);

            Context.ReturnFile(Encoding.UTF8.GetBytes(generator.GenerateFile()), "ApiClient.cs", "text/plain");
            //File.WriteAllText(CSharpPath, generator.GenerateFile());
        }
Exemple #18
0
        private static void BuildAssemblyMultiClientFromOpId(SwaggerDocument document, string location, AssemblyName name, string nameSpace, ref string typeName)
        {
            typeName = "Api";
            var settings = new SwaggerToCSharpClientGeneratorSettings
            {
                ClassName = "{controller}Client",
                OperationNameGenerator  = new MultipleClientsFromOperationIdOperationNameGenerator(), // this is default
                CSharpGeneratorSettings =
                {
                    Namespace = nameSpace
                },
            };

            var generator = new SwaggerToCSharpClientGenerator(document, settings);

            var code = generator.GenerateFile();

            code  = code.Replace(nameSpace + "\n{", nameSpace + "\n{" + " public class " + typeName + "{ ");
            code += " }";
            CompilerResults results;
            var             assemblyNames = new List <string>()
            {
                "System.dll",
                "System.Core.dll",
                "System.Xml.dll",
                "System.Runtime.Serialization.dll",
                "System.Net.Http.dll",
                "System.ComponentModel.DataAnnotations.dll",
            };

            assemblyNames.Add(Path.Combine(location, "Newtonsoft.Json.dll"));

            using (var codeProvider = new CSharpCodeProvider(new Dictionary <string, string>()
            {
                { "CompilerVersion", "v4.0" }
            }))
            {
                var options = new CompilerParameters(
                    assemblyNames.ToArray(),
                    name.CodeBase,
                    true);
                results = codeProvider.CompileAssemblyFromSource(options, code);
            }

            if (results.Errors.Count > 0)
            {
                throw new Exception
                          ("Cannot compile typed context: " + results.Errors[0].ErrorText + " (line " + results.Errors[0].Line + ")");
            }
        }
Exemple #19
0
        public async Task When_action_has_file_parameter_then_Stream_is_generated_in_CSharp_code()
        {
            //// Arrange
            var generator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document  = await generator.GenerateForControllerAsync <FileUploadController>();

            //// Act
            var codeGen = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());
            var code    = codeGen.GenerateFile();

            //// Assert
            Assert.IsTrue(code.Contains("FileParameter file"));
            Assert.IsTrue(code.Contains("var content_ = new System.Net.Http.MultipartFormDataContent(boundary_);"));
            Assert.IsTrue(code.Contains("content_.Add(new System.Net.Http.StreamContent(file.Data), \"file\""));
        }
Exemple #20
0
        public async Task When_body_is_xml_then_correct_csharp_is_generated()
        {
            //// Arrange
            var generator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document  = await generator.GenerateForControllerAsync <MyXmlController>();

            //// Act
            var gen  = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());
            var code = gen.GenerateFile();

            //// Assert
            Assert.IsTrue(code.Contains("(string xmlDocument, "));
            Assert.IsTrue(code.Contains("var content_ = new System.Net.Http.StringContent(xmlDocument);"));
            Assert.IsTrue(code.Contains("content_.Headers.ContentType.MediaType = \"application/xml\";"));
        }
Exemple #21
0
        public void When_action_has_file_parameter_then_Stream_is_generated_in_CSharp_code()
        {
            //// Arrange
            var generator = new SwaggerGenerators.WebApi.WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var service   = generator.GenerateForController <FileUploadController>();

            //// Act
            var codeGen = new SwaggerToCSharpClientGenerator(service, new SwaggerToCSharpClientGeneratorSettings());
            var code    = codeGen.GenerateFile();

            //// Assert
            Assert.IsTrue(code.Contains("FileParameter file"));
            Assert.IsTrue(code.Contains("var content_ = new MultipartFormDataContent();"));
            Assert.IsTrue(code.Contains("content_.Add(new StreamContent(file.Data), \"file\""));
        }
Exemple #22
0
        public async Task When_body_is_binary_then_stream_is_used_as_parameter_in_CSharp()
        {
            var yaml = @"openapi: 3.0.0
servers:
  - url: https://www.example.com/
info:
  version: '2.0.0'
  title: 'Test API'   
paths:
  /files:
    post:
      tags:
        - Files
      summary: 'Add File'
      operationId: addFile
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileToken'
      requestBody:
        content:
          image/png:
            schema:
              type: string
              format: binary
components:
  schemas:
    FileToken:
      type: object
      required:
        - fileId    
      properties:  
        fileId:
          type: string
          format: uuid";

            var document = await SwaggerYamlDocument.FromYamlAsync(yaml);

            //// Act
            var codeGenerator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());
            var code          = codeGenerator.GenerateFile();

            //// Assert
            Assert.Contains("public async System.Threading.Tasks.Task<FileToken> AddFileAsync(System.IO.Stream body, System.Threading.CancellationToken cancellationToken)", code);
            Assert.Contains("var content_ = new System.Net.Http.StreamContent(body);", code);
        }
Exemple #23
0
        public async static Task <string> GenerateFromUrl(string url, string namespaceName, string className)
        {
            var document = await SwaggerDocument.FromUrlAsync(url);

            var settings = new SwaggerToCSharpClientGeneratorSettings
            {
                ClassName = className,
                CSharpGeneratorSettings =
                {
                    Namespace = namespaceName
                }
            };
            var generator = new SwaggerToCSharpClientGenerator(document, settings);

            return(generator.GenerateFile());
        }
        public async Task When_setting_is_enabled_with_enum_fromuri_should_make_enum_nullable()
        {
            //// Arrange
            var generator = new WebApiToSwaggerGenerator(new WebApiAssemblyToSwaggerGeneratorSettings());
            var document  = await generator.GenerateForControllerAsync <TestController>();

            //// Act
            var codeGenerator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings
            {
                GenerateOptionalParameters = true
            });
            var code = codeGenerator.GenerateFile();

            //// Assert
            Assert.IsFalse(code.Contains("TestWithEnumAsync(MyEnum myEnum = null)"));
            Assert.IsTrue(code.Contains("TestWithEnumAsync(MyEnum? myEnum = null)"));
        }
Exemple #25
0
        public void When_form_parameters_are_defined_then_FormUrlEncodedContent_is_generated()
        {
            //// Arrange
            var document = new SwaggerDocument();

            document.Paths["foo/bar"] = new SwaggerPathItem
            {
                {
                    SwaggerOperationMethod.Post,
                    new SwaggerOperation
                    {
                        Consumes = new System.Collections.Generic.List <string> {
                            "application/x-www-form-urlencoded"
                        },
                        Parameters =
                        {
                            new SwaggerParameter
                            {
                                Name          = "foo",
                                IsRequired    = false,
                                IsNullableRaw = true,
                                Kind          = SwaggerParameterKind.FormData,
                                Type          = JsonObjectType.String
                            },
                            new SwaggerParameter
                            {
                                Name          = "bar",
                                IsRequired    = true,
                                IsNullableRaw = false,
                                Kind          = SwaggerParameterKind.FormData,
                                Type          = JsonObjectType.String
                            }
                        }
                    }
                }
            };

            //// Act
            var generator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings());
            var code      = generator.GenerateFile();

            //// Assert
            Assert.Contains("new System.Net.Http.FormUrlEncodedContent", code);
            Assert.Contains("if (foo != null)", code);
            Assert.Contains("throw new System.ArgumentNullException(\"bar\");", code);
        }
Exemple #26
0
        public async Task When_setting_is_enabled_then_optional_parameters_have_null_optional_value()
        {
            //// Arrange
            var generator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document  = await generator.GenerateForControllerAsync <TestController>();

            //// Act
            var codeGenerator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings
            {
                GenerateOptionalParameters = true
            });
            var code = codeGenerator.GenerateFile();

            //// Assert
            Assert.IsTrue(code.Contains("TestAsync(string a, string b, string c = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))"));
            Assert.IsFalse(code.Contains("TestAsync(string a, string b, string c)"));
        }
Exemple #27
0
        public async Task When_setting_is_enabled_with_class_fromuri_should_make_enum_nullable()
        {
            //// Arrange
            var generator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document  = await generator.GenerateForControllerAsync <TestController>();

            //// Act
            var codeGenerator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings
            {
                GenerateOptionalParameters = true
            });
            var code = codeGenerator.GenerateFile();

            //// Assert
            Assert.IsFalse(code.Contains("TestWithClassAsync(string myString = null, MyEnum myEnum = null, int? myInt = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))"));
            Assert.IsTrue(code.Contains("TestWithClassAsync(string myString = null, MyEnum? myEnum = null, int? myInt = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))"));
        }
Exemple #28
0
        public async Task When_response_is_file_and_stream_is_not_used_then_byte_array_is_returned()
        {
            //// Arrange
            var swaggerGenerator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document         = await swaggerGenerator.GenerateForControllerAsync <FileDownloadController>();

            //// Act
            var codeGen = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings
            {
                GenerateClientInterfaces = true
            });
            var code = codeGen.GenerateFile();

            //// Assert
            Assert.Contains("System.Threading.Tasks.Task<FileResponse> DownloadFileAsync();", code);
            Assert.Contains("ReadAsStreamAsync()", code);
        }
        public async Task When_custom_http_client_type_is_specified_then_an_instance_of_that_type_is_used()
        {
            //// Arrange
            var swaggerGenerator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document         = await swaggerGenerator.GenerateForControllerAsync <FooController>();

            var generator = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings
            {
                HttpClientType = "CustomNamespace.CustomHttpClient"
            });

            //// Act
            var code = generator.GenerateFile();

            //// Assert
            Assert.Contains("var client_ = new CustomNamespace.CustomHttpClient();", code);
        }
        public async Task When_success_responses_are_wrapped_then_SwaggerResponse_is_returned()
        {
            //// Arrange
            var swaggerGen = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings());
            var document   = await swaggerGen.GenerateForControllerAsync <TestController>();

            //// Act
            var codeGen = new SwaggerToCSharpClientGenerator(document, new SwaggerToCSharpClientGeneratorSettings
            {
                WrapResponses = true
            });
            var code = codeGen.GenerateFile();

            //// Assert
            Assert.IsTrue(code.Contains("Task<SwaggerResponse<string>>"));
            Assert.IsTrue(code.Contains("Task<SwaggerResponse>"));
        }