using StellaOps.Auth.Abstractions; using Xunit; namespace StellaOps.Auth.Abstractions.Tests; #pragma warning disable CS0618 public class StellaOpsScopesTests { [Theory] [InlineData(StellaOpsScopes.AdvisoryRead)] [InlineData(StellaOpsScopes.AdvisoryIngest)] [InlineData(StellaOpsScopes.AdvisoryAiView)] [InlineData(StellaOpsScopes.AdvisoryAiOperate)] [InlineData(StellaOpsScopes.AdvisoryAiAdmin)] [InlineData(StellaOpsScopes.VexRead)] [InlineData(StellaOpsScopes.VexIngest)] [InlineData(StellaOpsScopes.AocVerify)] [InlineData(StellaOpsScopes.SignalsRead)] [InlineData(StellaOpsScopes.SignalsWrite)] [InlineData(StellaOpsScopes.SignalsAdmin)] [InlineData(StellaOpsScopes.AirgapSeal)] [InlineData(StellaOpsScopes.AirgapImport)] [InlineData(StellaOpsScopes.AirgapStatusRead)] [InlineData(StellaOpsScopes.PolicyWrite)] [InlineData(StellaOpsScopes.PolicyAuthor)] [InlineData(StellaOpsScopes.PolicySubmit)] [InlineData(StellaOpsScopes.PolicyApprove)] [InlineData(StellaOpsScopes.PolicyReview)] [InlineData(StellaOpsScopes.PolicyOperate)] [InlineData(StellaOpsScopes.PolicyPublish)] [InlineData(StellaOpsScopes.PolicyPromote)] [InlineData(StellaOpsScopes.PolicyAudit)] [InlineData(StellaOpsScopes.PolicyRun)] [InlineData(StellaOpsScopes.PolicySimulate)] [InlineData(StellaOpsScopes.FindingsRead)] [InlineData(StellaOpsScopes.EffectiveWrite)] [InlineData(StellaOpsScopes.GraphRead)] [InlineData(StellaOpsScopes.VulnView)] [InlineData(StellaOpsScopes.VulnInvestigate)] [InlineData(StellaOpsScopes.VulnOperate)] [InlineData(StellaOpsScopes.VulnAudit)] [InlineData(StellaOpsScopes.VulnRead)] [InlineData(StellaOpsScopes.GraphWrite)] [InlineData(StellaOpsScopes.GraphExport)] [InlineData(StellaOpsScopes.GraphSimulate)] [InlineData(StellaOpsScopes.OrchRead)] [InlineData(StellaOpsScopes.OrchOperate)] [InlineData(StellaOpsScopes.OrchBackfill)] [InlineData(StellaOpsScopes.OrchQuota)] [InlineData(StellaOpsScopes.ExportViewer)] [InlineData(StellaOpsScopes.ExportOperator)] [InlineData(StellaOpsScopes.ExportAdmin)] [InlineData(StellaOpsScopes.NotifyViewer)] [InlineData(StellaOpsScopes.NotifyOperator)] [InlineData(StellaOpsScopes.NotifyAdmin)] [InlineData(StellaOpsScopes.NotifyEscalate)] [InlineData(StellaOpsScopes.PacksRead)] [InlineData(StellaOpsScopes.PacksWrite)] [InlineData(StellaOpsScopes.PacksRun)] [InlineData(StellaOpsScopes.PacksApprove)] [InlineData(StellaOpsScopes.ObservabilityRead)] [InlineData(StellaOpsScopes.TimelineRead)] [InlineData(StellaOpsScopes.TimelineWrite)] [InlineData(StellaOpsScopes.EvidenceCreate)] [InlineData(StellaOpsScopes.EvidenceRead)] [InlineData(StellaOpsScopes.EvidenceHold)] [InlineData(StellaOpsScopes.AttestRead)] [InlineData(StellaOpsScopes.ObservabilityIncident)] [InlineData(StellaOpsScopes.AuthorityTenantsRead)] public void All_IncludesNewScopes(string scope) { Assert.Contains(scope, StellaOpsScopes.All); } [Theory] [InlineData("Advisory:Read", StellaOpsScopes.AdvisoryRead)] [InlineData(" VEX:Ingest ", StellaOpsScopes.VexIngest)] [InlineData("AOC:VERIFY", StellaOpsScopes.AocVerify)] [InlineData(" Signals:Write ", StellaOpsScopes.SignalsWrite)] [InlineData("AIRGAP:SEAL", StellaOpsScopes.AirgapSeal)] [InlineData("Policy:Author", StellaOpsScopes.PolicyAuthor)] [InlineData("Policy:Publish", StellaOpsScopes.PolicyPublish)] [InlineData("Policy:PROMOTE", StellaOpsScopes.PolicyPromote)] [InlineData("Export.Admin", StellaOpsScopes.ExportAdmin)] [InlineData("Advisory-AI:Operate", StellaOpsScopes.AdvisoryAiOperate)] [InlineData("Notify.Admin", StellaOpsScopes.NotifyAdmin)] [InlineData("Packs.Run", StellaOpsScopes.PacksRun)] [InlineData("Packs.Approve", StellaOpsScopes.PacksApprove)] [InlineData("Notify.Escalate", StellaOpsScopes.NotifyEscalate)] [InlineData("VULN:VIEW", StellaOpsScopes.VulnView)] [InlineData("VULN:INVESTIGATE", StellaOpsScopes.VulnInvestigate)] [InlineData("VULN:OPERATE", StellaOpsScopes.VulnOperate)] [InlineData("VULN:AUDIT", StellaOpsScopes.VulnAudit)] public void Normalize_NormalizesToLowerCase(string input, string expected) { Assert.Equal(expected, StellaOpsScopes.Normalize(input)); } } #pragma warning restore CS0618