TestimoX

API Reference

Class

RuleBuilderExtensions

Namespace TestimoX.Testing
Assembly TestimoX
Modifiers static

Extension methods for rule building.

Inheritance

  • Object
  • RuleBuilderExtensions

Methods

public static RuleBuilder AddBooleanTest(RuleBuilder builder, String testName, String propertyPath, Boolean expectedValue = true, Importance importance = Moderate) #
Returns: RuleBuilder

Creates a simple pass/fail test.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
testName System.String requiredposition: 1
propertyPath System.String requiredposition: 2
expectedValue System.Boolean = true optionalposition: 3
importance TestimoX.Definitions.Importance = Moderate optionalposition: 4
public static RuleBuilder AddPercentageTest(RuleBuilder builder, String testName, String propertyPath, Double minPercentage, Importance importance = Moderate) #
Returns: RuleBuilder

Creates a percentage test.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
testName System.String requiredposition: 1
propertyPath System.String requiredposition: 2
minPercentage System.Double requiredposition: 3
importance TestimoX.Definitions.Importance = Moderate optionalposition: 4
public static RuleBuilder AddSecurityScoreTest(RuleBuilder builder, String testName, Dictionary<String, Int32> issueWeights, Int32 minimumScore = 70) #
Returns: RuleBuilder

Creates a security score test.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
testName System.String requiredposition: 1
issueWeights System.Collections.Generic.Dictionary{System.String,System.Int32} requiredposition: 2
minimumScore System.Int32 = 70 optionalposition: 3
public static RuleBuilder Exclude(RuleBuilder builder, params String[] keys) #
Returns: RuleBuilder

Excludes items whose String) property equals any of the provided keys.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
Rule builder.
keys System.String[] requiredposition: 1
Values to exclude.

Returns

The same builder.

public static RuleBuilder ExpectSourceOutput(RuleBuilder builder, Boolean expectOutput) #
Returns: RuleBuilder

Sets whether the source is expected to return data. Use false for "findings-only" rules that legitimately return an empty list when no issues are present (to avoid failing the gate).

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
expectOutput System.Boolean requiredposition: 1
public static RuleBuilder FindingsOnly(RuleBuilder builder) #
Returns: RuleBuilder

Semantic alias for Boolean) when a rule returns only findings. Use on rules whose source produces a list of issues; empty list means "good".

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
public static RuleBuilder Include(RuleBuilder builder, params String[] keys) #
Returns: RuleBuilder

Includes only items whose String) property equals any of the provided keys.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
keys System.String[] requiredposition: 1
public static RuleBuilder MatchOn(RuleBuilder builder, String propertyPath) #
Returns: RuleBuilder

Sets the property path that identifies a unique object (used to match inclusions/exclusions).

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
Rule builder.
propertyPath System.String requiredposition: 1
Property path (e.g., "SamAccountName").

Returns

The same builder.

public static RuleBuilder RequiresComputers(RuleBuilder builder, Action<ComputerDataRequirement> configure) #
Returns: RuleBuilder

Declares that the rule requires enumerating computer data and allows specifying filters/scope.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
Rule builder.
configure System.Action{TestimoX.Planning.ComputerDataRequirement} requiredposition: 1
Callback to configure computer data needs.

Returns

The same builder.

public static RuleBuilder RequiresDataSets(RuleBuilder builder, params DataSetKind[] dataSets) #
Returns: RuleBuilder

Declares generic dataset requirements to pre-warm once for this run. Prefer this over specialized helpers.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
dataSets TestimoX.Planning.DataSetKind[] requiredposition: 1
public static RuleBuilder RequiresGpo(RuleBuilder builder, Action<GpoDataRequirement> configure) #
Returns: RuleBuilder

Declares that the rule requires Group Policy data and specifies which caches to warm.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
Rule builder.
configure System.Action{TestimoX.Planning.GpoDataRequirement} requiredposition: 1
Callback to configure GPO data needs.

Returns

The same builder.

public static RuleBuilder RequiresGroups(RuleBuilder builder, Action<GroupDataRequirement> configure) #
Returns: RuleBuilder

Declares that the rule requires enumerating group data and allows specifying filters/scope.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
Rule builder.
configure System.Action{TestimoX.Planning.GroupDataRequirement} requiredposition: 1
Callback to configure group data needs.

Returns

The same builder.

public static RuleBuilder RequiresPermissions(RuleBuilder builder, PermissionRequired permission) #
Returns: RuleBuilder

Sets the minimal permission level required to execute this rule.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
permission TestimoX.Definitions.PermissionRequired requiredposition: 1
public static RuleBuilder RequiresUsers(RuleBuilder builder, Action<UserDataRequirement> configure) #
Returns: RuleBuilder

Declares that the rule requires enumerating user data and allows specifying filters/scope.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
Rule builder.
configure System.Action{TestimoX.Planning.UserDataRequirement} requiredposition: 1
Callback to configure user data needs.

Returns

The same builder.

public static RuleBuilder WithCrosswalk(RuleBuilder builder, params RuleVendorRef[] refs) #
Returns: RuleBuilder

Attaches inline crosswalk references to vendor baselines or external docs. This makes mappings visible directly in the rule source.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
refs TestimoX.Definitions.RuleVendorRef[] requiredposition: 1
public static RuleBuilder WithGuidance(RuleBuilder builder, Action<GuidanceBuilder> configure) #
Returns: RuleBuilder

Adds guidance (summary, investigation, remediation, references, examples) to a rule.

Parameters

builder TestimoX.Testing.RuleBuilder requiredposition: 0
configure System.Action{TestimoX.Testing.RuleBuilderExtensions.GuidanceBuilder} requiredposition: 1

Examples


var rule = RuleBuilder.Create("DomainGpoAnonymousPermissions")
    .DisplayName("GPO – Anonymous Permissions")
    .Description("Checks whether anonymous access to directory data is allowed.")
    .ForScope(Scope.Domain)
    .WithGuidance(g => g
        .Summary("Anonymous access should be disabled to reduce information exposure.")
        .WhyItMatters("Unauthenticated users may enumerate users, groups, and other objects.")
        .HowToFix(
            "Set 'Network access: Do not allow anonymous enumeration of SAM accounts and shares' to Enabled.",
            "Ensure 'Allow anonymous SID/Name translation' is Disabled.")
        .Reference("Security baseline", "https://aka.ms/win-baselines"))
    .Build();