< Summary

Information
Class: AsiBackbone.Core.Classification.DlpFailurePolicyOptions
Assembly: AsiBackbone.Core
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.Core/Classification/DlpFailurePolicyOptions.cs
Line coverage
95%
Covered lines: 19
Uncovered lines: 1
Coverable lines: 20
Total lines: 64
Line coverage: 95%
Branch coverage
87%
Covered branches: 7
Total branches: 8
Branch coverage: 87.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_LowRiskBehavior()100%11100%
get_MediumRiskBehavior()100%11100%
get_HighRiskBehavior()100%11100%
get_BehaviorOverrides()100%11100%
.ctor()100%11100%
GetBehavior(...)83.33%6691.66%
ValidateBehavior(...)100%22100%

File(s)

/home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.Core/Classification/DlpFailurePolicyOptions.cs

#LineLine coverage
 1namespace AsiBackbone.Core.Classification;
 2
 3/// <summary>
 4/// Defines provider-neutral policy options for resolving DLP or classification failure behavior.
 5/// </summary>
 6public sealed class DlpFailurePolicyOptions
 7{
 8    /// <summary>
 9    /// Gets or sets the default behavior for low-risk intents.
 10    /// </summary>
 4211    public DlpFailureBehavior LowRiskBehavior { get; set; } = DlpFailureBehavior.WarnAndAllow;
 12
 13    /// <summary>
 14    /// Gets or sets the default behavior for medium-risk intents.
 15    /// </summary>
 3516    public DlpFailureBehavior MediumRiskBehavior { get; set; } = DlpFailureBehavior.RequireAcknowledgment;
 17
 18    /// <summary>
 19    /// Gets or sets the default behavior for high-risk or regulated intents.
 20    /// </summary>
 3221    public DlpFailureBehavior HighRiskBehavior { get; set; } = DlpFailureBehavior.Deny;
 22
 23    /// <summary>
 24    /// Gets risk- and failure-specific behavior overrides.
 25    /// </summary>
 3026    public IDictionary<DlpFailurePolicyKey, DlpFailureBehavior> BehaviorOverrides { get; } =
 2627        new Dictionary<DlpFailurePolicyKey, DlpFailureBehavior>();
 28
 29    /// <summary>
 30    /// Resolves the configured behavior for the supplied failure context.
 31    /// </summary>
 32    /// <param name="context">The DLP failure policy context.</param>
 33    /// <returns>The configured behavior.</returns>
 34    public DlpFailureBehavior GetBehavior(DlpFailurePolicyContext context)
 35    {
 2636        ArgumentNullException.ThrowIfNull(context);
 37
 2438        var key = new DlpFailurePolicyKey(context.RiskLevel, context.FailureKind);
 39
 2440        if (BehaviorOverrides.TryGetValue(key, out DlpFailureBehavior overrideBehavior))
 41        {
 642            return ValidateBehavior(overrideBehavior, nameof(BehaviorOverrides));
 43        }
 44
 1845        DlpFailureBehavior behavior = context.RiskLevel switch
 1846        {
 947            DlpIntentRiskLevel.Low => LowRiskBehavior,
 548            DlpIntentRiskLevel.Medium => MediumRiskBehavior,
 449            DlpIntentRiskLevel.High => HighRiskBehavior,
 050            _ => throw new ArgumentOutOfRangeException(nameof(context), context.RiskLevel, "DLP intent risk level must b
 1851        };
 52
 1853        return ValidateBehavior(behavior, nameof(context));
 54    }
 55
 56    private static DlpFailureBehavior ValidateBehavior(
 57        DlpFailureBehavior behavior,
 58        string parameterName)
 59    {
 2460        return Enum.IsDefined(behavior)
 2461            ? behavior
 2462            : throw new ArgumentOutOfRangeException(parameterName, behavior, "DLP failure behavior must be defined.");
 63    }
 64}