Skip to content

Commit b1cf08d

Browse files
Merge pull request #1150 from microsoft/mk/convert-validation-rules-to-IEnumerable
Update ValidationRuleSet.Rules to be an IEnumerable collection not IList
2 parents db75eed + 6112dd7 commit b1cf08d

File tree

4 files changed

+10
-9
lines changed

4 files changed

+10
-9
lines changed

src/Microsoft.OpenApi.Readers/OpenApiYamlDocumentReader.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public OpenApiDocument Read(YamlDocument input, out OpenApiDiagnostic diagnostic
6868
}
6969

7070
// Validate the document
71-
if (_settings.RuleSet != null && _settings.RuleSet.Rules.Count > 0)
71+
if (_settings.RuleSet != null && _settings.RuleSet.Rules.Count() > 0)
7272
{
7373
var openApiErrors = document.Validate(_settings.RuleSet);
7474
foreach (var item in openApiErrors.OfType<OpenApiValidatorError>())
@@ -112,7 +112,7 @@ public async Task<ReadResult> ReadAsync(YamlDocument input)
112112
}
113113

114114
// Validate the document
115-
if (_settings.RuleSet != null && _settings.RuleSet.Rules.Count > 0)
115+
if (_settings.RuleSet != null && _settings.RuleSet.Rules.Any())
116116
{
117117
var openApiErrors = document.Validate(_settings.RuleSet);
118118
foreach (var item in openApiErrors.OfType<OpenApiValidatorError>())
@@ -193,7 +193,7 @@ public T ReadFragment<T>(YamlDocument input, OpenApiSpecVersion version, out Ope
193193
}
194194

195195
// Validate the element
196-
if (_settings.RuleSet != null && _settings.RuleSet.Rules.Count > 0)
196+
if (_settings.RuleSet != null && _settings.RuleSet.Rules.Any())
197197
{
198198
var errors = element.Validate(_settings.RuleSet);
199199
foreach (var item in errors)

src/Microsoft.OpenApi/Validations/ValidationRuleSet.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ namespace Microsoft.OpenApi.Validations
1717
/// </summary>
1818
public sealed class ValidationRuleSet : IEnumerable<ValidationRule>
1919
{
20-
private IDictionary<Type, IList<ValidationRule>> _rules = new Dictionary<Type, IList<ValidationRule>>();
20+
private readonly IDictionary<Type, IList<ValidationRule>> _rules = new Dictionary<Type, IList<ValidationRule>>();
2121

2222
private static ValidationRuleSet _defaultRuleSet;
2323

24-
private IList<ValidationRule> _emptyRules = new List<ValidationRule>();
24+
private readonly IList<ValidationRule> _emptyRules = new List<ValidationRule>();
2525

2626
/// <summary>
2727
/// Retrieve the rules that are related to a specific type
@@ -110,11 +110,11 @@ public ValidationRuleSet(IEnumerable<ValidationRule> rules)
110110
/// <summary>
111111
/// Gets the rules in this rule set.
112112
/// </summary>
113-
public IList<ValidationRule> Rules
113+
public IEnumerable<ValidationRule> Rules
114114
{
115115
get
116116
{
117-
return _rules.Values.SelectMany(v => v).ToList();
117+
return _rules.Values.SelectMany(v => v);
118118
}
119119
}
120120

test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,7 @@ namespace Microsoft.OpenApi.Validations
12621262
public ValidationRuleSet() { }
12631263
public ValidationRuleSet(Microsoft.OpenApi.Validations.ValidationRuleSet ruleSet) { }
12641264
public ValidationRuleSet(System.Collections.Generic.IEnumerable<Microsoft.OpenApi.Validations.ValidationRule> rules) { }
1265-
public System.Collections.Generic.IList<Microsoft.OpenApi.Validations.ValidationRule> Rules { get; }
1265+
public System.Collections.Generic.IEnumerable<Microsoft.OpenApi.Validations.ValidationRule> Rules { get; }
12661266
public void Add(Microsoft.OpenApi.Validations.ValidationRule rule) { }
12671267
public System.Collections.Generic.IList<Microsoft.OpenApi.Validations.ValidationRule> FindRules(System.Type type) { }
12681268
public System.Collections.Generic.IEnumerator<Microsoft.OpenApi.Validations.ValidationRule> GetEnumerator() { }

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

4+
using System.Linq;
45
using Xunit;
56
using Xunit.Abstractions;
67

@@ -43,7 +44,7 @@ public void DefaultRuleSetPropertyReturnsTheCorrectRules()
4344
Assert.NotEmpty(rules);
4445

4546
// Update the number if you add new default rule(s).
46-
Assert.Equal(22, rules.Count);
47+
Assert.Equal(22, rules.Count());
4748
}
4849
}
4950
}

0 commit comments

Comments
 (0)