< Summary

Information
Class: Intentum.Runtime.Engine.IntentPolicyEngine
Assembly: Intentum.Runtime
File(s): /home/runner/work/Intentum/Intentum/src/Intentum.Runtime/Engine/IntentPolicyEngine.cs
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 33
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
Evaluate(...)100%11100%
EvaluateWithRule(...)100%22100%

File(s)

/home/runner/work/Intentum/Intentum/src/Intentum.Runtime/Engine/IntentPolicyEngine.cs

#LineLine coverage
 1using Intentum.Core.Intents;
 2using Intentum.Runtime.Policy;
 3
 4namespace Intentum.Runtime.Engine;
 5
 6/// <summary>
 7/// Deterministic policy evaluation for inferred intent.
 8/// </summary>
 9public static class IntentPolicyEngine
 10{
 11    /// <summary>
 12    /// Evaluates the intent against the policy and returns the decision.
 13    /// </summary>
 14    public static PolicyDecision Evaluate(
 15        Intent intent,
 16        IntentPolicy policy)
 8117    {
 8118        var (decision, _) = EvaluateWithRule(intent, policy);
 8119        return decision;
 8120    }
 21
 22    /// <summary>
 23    /// Evaluates the intent against the policy and returns the decision plus the matched rule (if any).
 24    /// </summary>
 25    public static (PolicyDecision Decision, PolicyRule? MatchedRule) EvaluateWithRule(
 26        Intent intent,
 27        IntentPolicy policy)
 9828    {
 25229        var matchingRule = policy.Rules.FirstOrDefault(rule => rule.Condition(intent));
 9630        var decision = matchingRule?.Decision ?? PolicyDecision.Observe;
 9631        return (decision, matchingRule);
 9632    }
 33}