using System.Threading; using Xunit; namespace StellaOps.Bench.Notify.Tests; public sealed class NotifyScenarioRunnerTests { [Fact] public void Execute_ComputesDeterministicMetrics() { var config = new NotifyScenarioConfig { Id = "unit_test", EventCount = 500, RuleCount = 40, ActionsPerRule = 3, MatchRate = 0.25, TenantCount = 4, ChannelCount = 16 }; var runner = new NotifyScenarioRunner(config); var result = runner.Execute(2, CancellationToken.None); Assert.Equal(config.ResolveEventCount(), result.TotalEvents); Assert.Equal(config.ResolveRuleCount(), result.TotalRules); Assert.Equal(config.ResolveActionsPerRule(), result.ActionsPerRule); Assert.True(result.TotalMatches > 0); Assert.Equal(result.TotalMatches * result.ActionsPerRule, result.TotalDeliveries); Assert.Equal(2, result.Durations.Count); Assert.All(result.Durations, value => Assert.True(value > 0)); } }