Skip to content

Commit fcd74c4

Browse files
bugfix#383 - removed check for existence of discriminator property in the property list
1 parent e43c8c7 commit fcd74c4

File tree

4 files changed

+1
-27
lines changed

4 files changed

+1
-27
lines changed

src/Microsoft.OpenApi/Properties/SRResource.Designer.cs

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Microsoft.OpenApi/Properties/SRResource.resx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,6 @@
198198
<data name="Validation_ComponentsKeyMustMatchRegularExpr" xml:space="preserve">
199199
<value>The key '{0}' in '{1}' of components MUST match the regular expression '{2}'.</value>
200200
</data>
201-
<data name="Validation_CompositeSchemaMustContainPropertySpecifiedInTheDiscriminator" xml:space="preserve">
202-
<value>Composite Schema {0} must contain property specified in the discriminator {1}.</value>
203-
</data>
204201
<data name="Validation_CompositeSchemaRequiredFieldListMustContainThePropertySpecifiedInTheDiscriminator" xml:space="preserve">
205202
<value>Composite schema {0} must contain property specified in the discriminator {1} in the required field list.</value>
206203
</data>

src/Microsoft.OpenApi/Validations/Rules/OpenApiSchemaRules.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,19 +122,13 @@ public static class OpenApiSchemaRules
122122

123123

124124
/// <summary>
125-
/// Checks if the schemas in the list contain a property with the property name specified by the discriminator.
125+
/// Checks if the schemas in the list contain a required field with the property name specified by the discriminator.
126126
/// </summary>
127127
private static void ValidateSchemaListDiscriminator(IValidationContext context, string ruleName,
128128
IList<OpenApiSchema> schemas, OpenApiDiscriminator discriminator)
129129
{
130130
foreach (var schema in schemas)
131131
{
132-
if (schema.Reference != null && !schema.Properties.ContainsKey(discriminator.PropertyName))
133-
{
134-
context.CreateError(ruleName,
135-
string.Format(SRResource.Validation_CompositeSchemaMustContainPropertySpecifiedInTheDiscriminator,
136-
schema.Reference.Id, discriminator.PropertyName));
137-
}
138132
if (schema.Reference != null && !schema.Required.Contains(discriminator.PropertyName))
139133
{
140134
context.CreateError(ruleName,

test/Microsoft.OpenApi.Tests/Validations/OpenApiSchemaValidationTests.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,6 @@ public void ValidateOneOfCompositeSchemaMustContainPropertySpecifiedInTheDiscrim
282282
string.Format(SRResource.Validation_CompositeSchemaRequiredFieldListMustContainThePropertySpecifiedInTheDiscriminator,
283283
"schema1", "property2")),
284284

285-
new OpenApiValidatorError(nameof(OpenApiSchemaRules.ValidateOneOfDiscriminator),"#/oneOf",
286-
string.Format(SRResource.Validation_CompositeSchemaMustContainPropertySpecifiedInTheDiscriminator,
287-
"schema2", "property2")),
288-
289285
new OpenApiValidatorError(nameof(OpenApiSchemaRules.ValidateOneOfDiscriminator),"#/oneOf",
290286
string.Format(SRResource.Validation_CompositeSchemaRequiredFieldListMustContainThePropertySpecifiedInTheDiscriminator,
291287
"schema2", "property2")),
@@ -342,10 +338,6 @@ public void ValidateAnyOfCompositeSchemaMustContainPropertySpecifiedInTheDiscrim
342338
string.Format(SRResource.Validation_CompositeSchemaRequiredFieldListMustContainThePropertySpecifiedInTheDiscriminator,
343339
"schema1", "property2")),
344340

345-
new OpenApiValidatorError(nameof(OpenApiSchemaRules.ValidateAnyOfDiscriminator),"#/anyOf",
346-
string.Format(SRResource.Validation_CompositeSchemaMustContainPropertySpecifiedInTheDiscriminator,
347-
"schema2", "property2")),
348-
349341
new OpenApiValidatorError(nameof(OpenApiSchemaRules.ValidateAnyOfDiscriminator),"#/anyOf",
350342
string.Format(SRResource.Validation_CompositeSchemaRequiredFieldListMustContainThePropertySpecifiedInTheDiscriminator,
351343
"schema2", "property2")),

0 commit comments

Comments
 (0)