using Akka.Actor; using ScadaLink.ManagementService; namespace ScadaLink.ManagementService.Tests; /// /// Tests for the supervision strategy /// (finding ManagementService-005). The project convention is that long-lived /// coordinator-style actors declare an explicit Resume-based strategy. /// public class ManagementActorSupervisionTests { [Fact] public void CreateSupervisorStrategy_ReturnsOneForOneStrategy() { var strategy = ManagementActor.CreateSupervisorStrategy(); Assert.IsType(strategy); } [Fact] public void CreateSupervisorStrategy_ResumesOnArbitraryException() { var strategy = (OneForOneStrategy)ManagementActor.CreateSupervisorStrategy(); var directive = strategy.Decider.Decide(new InvalidOperationException("boom")); Assert.Equal(Directive.Resume, directive); } [Fact] public void CreateSupervisorStrategy_ResumesIndefinitely() { var strategy = (OneForOneStrategy)ManagementActor.CreateSupervisorStrategy(); // Coordinator actors should not give up: unbounded retries. Assert.Equal(-1, strategy.MaxNumberOfRetries); } }