-
Notifications
You must be signed in to change notification settings - Fork 65
Expand file tree
/
Copy pathBaselineSelectorTests.cs
More file actions
66 lines (55 loc) · 2.04 KB
/
Copy pathBaselineSelectorTests.cs
File metadata and controls
66 lines (55 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System.Linq;
using PSRule.Definitions;
using PSRule.Definitions.Baselines;
using PSRule.Definitions.Rules;
namespace PSRule;
/// <summary>
/// Tests for baseline selector functionality.
/// </summary>
public sealed class BaselineSelectorTests : ContextBaseTests
{
private const string BaselineSelectorFileName = "BaselineSelector.Rule.yaml";
[Fact]
public void BaselineRuleFilter_WithSelector()
{
// Test that BaselineRuleFilter can filter rules using selectors
var context = GetContext();
var rules = GetTestRules();
// Create a simple selector that filters for rules with "Error" level
var filter = new BaselineRuleFilter(
include: null,
tag: null,
exclude: null,
includeLocal: true,
labels: null,
selector: null, // Will implement selector parsing later
context: context
);
var filteredRules = rules.Where(rule => filter.Match(rule)).ToArray();
// For now, should behave like regular RuleFilter (no selector)
Assert.NotEmpty(filteredRules);
}
[Fact]
public void ReadBaseline_WithSelector()
{
// Test reading baseline YAML with selector
var baselines = GetBaselines(GetSource(BaselineSelectorFileName));
Assert.NotNull(baselines);
Assert.Equal(4, baselines.Length);
// Validate that baselines were read correctly
Assert.Equal("HighSeverityBaseline", baselines[0].Name);
Assert.Equal("PrefixBaseline", baselines[1].Name);
Assert.Equal("ComplexBaseline", baselines[2].Name);
Assert.Equal("AnnotationBaseline", baselines[3].Name);
}
private IResource[] GetTestRules()
{
// Create mock rules for testing
var rules = new List<IResource>();
// This will be expanded once we have the filtering working
// For now, return empty array
return rules.ToArray();
}
}