public string Gen(SwaggerDocument service, SwaggerToolSettings setting) { var settings = new SwaggerToCSharpClientGeneratorSettings { ClassName = setting.CSharpGen.ClassName, CSharpGeneratorSettings=new NJsonSchema.CodeGeneration.CSharp.CSharpGeneratorSettings() { Namespace= setting.CSharpGen.Namespace} }; var generator = new SwaggerToCSharpClientGenerator(service, settings); var code = generator.GenerateFile(); return code; }
public void When_action_has_file_parameter_then_Stream_is_generated_in_CSharp_code() { //// Arrange var generator = new WebApiToSwaggerGenerator(new WebApiToSwaggerGeneratorSettings()); var document = generator.GenerateForController<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();")); Assert.IsTrue(code.Contains("content_.Add(new System.Net.Http.StreamContent(file.Data), \"file\"")); }
public void When_generating_CSharp_code_then_output_contains_expected_classes() { // Arrange var service = CreateService(); //// Act var settings = new SwaggerToCSharpClientGeneratorSettings { ClassName = "MyClass" }; settings.CSharpGeneratorSettings.Namespace = "MyNamespace"; var generator = new SwaggerToCSharpClientGenerator(service, settings); var code = generator.GenerateFile(); // Assert Assert.IsTrue(code.Contains("namespace MyNamespace")); Assert.IsTrue(code.Contains("class MyClass")); Assert.IsTrue(code.Contains("class Person")); Assert.IsTrue(code.Contains("class Address")); }
public void When_form_parameters_are_defined_then_MultipartFormDataContent_is_generated() { //// Arrange var document = new SwaggerDocument(); document.Paths["foo/bar"] = new SwaggerOperations { { SwaggerOperationMethod.Post, new SwaggerOperation { Parameters = new List<SwaggerParameter> { 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.IsTrue(code.Contains("new System.Net.Http.MultipartFormDataContent")); Assert.IsTrue(code.Contains("if (foo != null)")); Assert.IsTrue(code.Contains("throw new System.ArgumentNullException(\"bar\");")); }
public void When_parameter_is_array_then_CSharp_is_correct() { //// Arrange var swagger = @"{ ""swagger"" : ""2.0"", ""info"" : { ""version"" : ""1.0.2"", ""title"" : ""Test API"" }, ""host"" : ""localhost:8080"", ""basePath"" : ""/"", ""tags"" : [ { ""name"" : ""api"" } ], ""schemes"" : [ ""http"" ], ""paths"" : { ""/removeElement"" : { ""delete"" : { ""tags"" : [ ""api"" ], ""summary"" : ""Removes elements"", ""description"" : ""Removes elements"", ""operationId"" : ""removeElement"", ""consumes"" : [ ""application/json"" ], ""produces"" : [ ""application/json"" ], ""parameters"" : [ { ""name"" : ""X-User"", ""in"" : ""header"", ""description"" : ""User identifier"", ""required"" : true, ""type"" : ""string"" }, { ""name"" : ""elementId"", ""in"" : ""query"", ""description"" : ""The ids of existing elements that should be removed"", ""required"" : false, ""type"" : ""array"", ""items"" : { ""type"" : ""integer"", ""format"" : ""int64"" }, } ], ""responses"" : { ""default"" : { ""description"" : ""successful operation"" } } } } }, ""definitions"" : { } } "; var service = SwaggerService.FromJson(swagger); //// Act var settings = new SwaggerToCSharpClientGeneratorSettings { ClassName = "MyClass" }; var generator = new SwaggerToCSharpClientGenerator(service, settings); var code = generator.GenerateFile(); //// Assert Assert.IsTrue(code.Contains(@"foreach(var item in elementId) { url += string.Format(""elementId={0}&"", Uri.EscapeUriString(item.ToString())); }")); }