/
Andru196
/
NSwagClone
Обзор
Документация
Войти
/
Andru196
/
NSwagClone
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
Аналитика
Безопасность
master
src/NSwag.CodeGeneration.TypeScript.Tests/JQueryPromisesTests.cs
125 строк
4 KB
Marko Lahma
Fix some code formatting issues (#5054)
23 ноя 2024, 21:51
Не верифицирован
23 ноя 2024, 21:51
29eef8f
Код
Авторство
О чём код?
using Microsoft.AspNetCore.Mvc; using NJsonSchema; using NJsonSchema.NewtonsoftJson.Generation; using NSwag.Generation.WebApi; using Xunit; namespace NSwag.CodeGeneration.TypeScript.Tests { public class JQueryPromisesTests { public class Foo { public string Bar { get; set; } } public class DiscussionController : Controller { [HttpPost] public void AddMessage([FromBody] Foo message) { } } public class UrlEncodedRequestConsumingController : Controller { [HttpPost] [Consumes("application/x-www-form-urlencoded")] public void AddMessage([FromForm] Foo message, [FromForm] string messageId) { } } [Fact] public async Task When_export_types_is_true_then_add_export_before_classes() { // Arrange var generator = new WebApiOpenApiDocumentGenerator(new WebApiOpenApiDocumentGeneratorSettings { SchemaSettings = new NewtonsoftJsonSchemaGeneratorSettings { SchemaType = SchemaType.Swagger2 } }); var document = await generator.GenerateForControllerAsync<DiscussionController>(); var json = document.ToJson(); Assert.NotNull(json); // Act var codeGen = new TypeScriptClientGenerator(document, new TypeScriptClientGeneratorSettings { Template = TypeScriptTemplate.JQueryPromises, GenerateClientInterfaces = true, TypeScriptGeneratorSettings = { TypeScriptVersion = 2.0m, ExportTypes = true } }); var code = codeGen.GenerateFile(); // Assert Assert.Contains("export class DiscussionClient", code); Assert.Contains("export interface IDiscussionClient", code); } [Fact] public async Task When_export_types_is_false_then_dont_add_export_before_classes() { // Arrange var generator = new WebApiOpenApiDocumentGenerator(new WebApiOpenApiDocumentGeneratorSettings { SchemaSettings = new NewtonsoftJsonSchemaGeneratorSettings { SchemaType = SchemaType.Swagger2 } }); var document = await generator.GenerateForControllerAsync<DiscussionController>(); var json = document.ToJson(); Assert.NotNull(json); // Act var codeGen = new TypeScriptClientGenerator(document, new TypeScriptClientGeneratorSettings { Template = TypeScriptTemplate.JQueryPromises, GenerateClientInterfaces = true, TypeScriptGeneratorSettings = { TypeScriptVersion = 2.0m, ExportTypes = false } }); var code = codeGen.GenerateFile(); // Assert Assert.DoesNotContain("export class DiscussionClient", code); Assert.DoesNotContain("export interface IDiscussionClient", code); } [Fact] public async Task When_consumes_is_url_encoded_then_construct_url_encoded_request() { // Arrange var generator = new WebApiOpenApiDocumentGenerator(new WebApiOpenApiDocumentGeneratorSettings { SchemaSettings = new NewtonsoftJsonSchemaGeneratorSettings { SchemaType = SchemaType.Swagger2 } }); var document = await generator.GenerateForControllerAsync<UrlEncodedRequestConsumingController>(); var json = document.ToJson(); Assert.NotNull(json); // Act var codeGen = new TypeScriptClientGenerator(document, new TypeScriptClientGeneratorSettings { Template = TypeScriptTemplate.JQueryPromises, TypeScriptGeneratorSettings = { TypeScriptVersion = 2.0m } }); var code = codeGen.GenerateFile(); // Assert Assert.Contains("content_", code); Assert.DoesNotContain("FormData", code); Assert.Contains("\"Content-Type\": \"application/x-www-form-urlencoded\"", code); } } }