From ae2a05e86baabab078551dd664433c27fbb8c61c Mon Sep 17 00:00:00 2001 From: "Daniel L. Romero" Date: Thu, 28 Oct 2021 01:21:30 -0500 Subject: [PATCH] Improve method MapSchemaToObject to support array and object (#670) --- .../Mappers/OpenApiPathsMapper.cs | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs b/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs index d61a970d..30a9f23a 100644 --- a/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs +++ b/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs @@ -114,11 +114,6 @@ namespace WireMock.Net.OpenApiParser.Mappers return null; } - if (schema.AllOf.Count > 0) - { - return MapSchemaAllOfToObject(schema); - } - switch (schema.GetSchemaType()) { case SchemaType.Array: @@ -149,6 +144,11 @@ namespace WireMock.Net.OpenApiParser.Mappers } } + if (schema.AllOf.Count > 0) + { + jArray.Add(MapSchemaAllOfToObject(schema)); + } + return jArray; case SchemaType.Boolean: @@ -161,10 +161,18 @@ namespace WireMock.Net.OpenApiParser.Mappers var propertyAsJObject = new JObject(); foreach (var schemaProperty in schema.Properties) { - string propertyName = schemaProperty.Key; - var openApiSchema = schemaProperty.Value; propertyAsJObject.Add(MapPropertyAsJObject(schemaProperty.Value, schemaProperty.Key)); } + if (schema.AllOf.Count > 0) + { + foreach (var property in schema.AllOf) + { + foreach (var item in property.Properties) + { + propertyAsJObject.Add(MapPropertyAsJObject(item.Value, item.Key)); + } + } + } return name != null ? new JProperty(name, propertyAsJObject) : (JToken)propertyAsJObject;