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;