From a6f38a4e92c78c5d59b290fa77914e654469c199 Mon Sep 17 00:00:00 2001 From: Hilde Hamer Date: Wed, 15 May 2024 21:26:46 +0200 Subject: [PATCH] Fix showing XML example for array responses --- .../SchemaGenerator/SchemaGenerator.cs | 7 ++++++- .../JsonSerializerSchemaGeneratorTests.cs | 13 +++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/SchemaGenerator.cs b/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/SchemaGenerator.cs index 9800eef3f5..94e4f390ed 100644 --- a/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/SchemaGenerator.cs +++ b/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/SchemaGenerator.cs @@ -323,7 +323,12 @@ private OpenApiSchema CreateArraySchema(DataContract dataContract, SchemaReposit { Type = "array", Items = GenerateSchema(dataContract.ArrayItemType, schemaRepository), - UniqueItems = hasUniqueItems ? (bool?)true : null + UniqueItems = hasUniqueItems ? (bool?)true : null, + Xml = new OpenApiXml() + { + Wrapped = true, + Name = dataContract.ArrayItemType.Name, + } }; } diff --git a/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs b/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs index 135005011a..e5c89bb350 100644 --- a/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs +++ b/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs @@ -159,6 +159,19 @@ public void GenerateSchema_GeneratesArraySchema_IfEnumerableType( Assert.Equal(expectedItemsFormat, schema.Items.Format); } + [Theory] + [InlineData(typeof(List), typeof(BadHttpRequestException))] + [InlineData(typeof(List), typeof(string))] + [InlineData(typeof(int[]), typeof(int))] + public void GenerateSchema_GeneratesArraySchema_ShouldContainXMLInformation(Type type, + Type expectedItemsType) + { + var schema = Subject().GenerateSchema(type, new SchemaRepository()); + + Assert.True(schema.Xml.Wrapped); + Assert.Equal(expectedItemsType.Name, schema.Xml.Name); + } + [Theory] [InlineData(typeof(ISet))] [InlineData(typeof(SortedSet))]