public void Test5Intensity1PeriodRestartStrategy() { var restartFiveInOneSupervisorTestResults = new RestartFiveInOneSupervisorActor.RestartFiveInOneSupervisorTestResults(); var supervisor = TestWorld.ActorFor <ISupervisor>( Definition.Has <RestartFiveInOneSupervisorActor>( Definition.Parameters(restartFiveInOneSupervisorTestResults), "resuming-5-1-supervisor")); var failureControlTestResults = new FailureControlActor.FailureControlTestResults(); var failure = TestWorld.ActorFor <IFailureControl>( Definition.Has <FailureControlActor>( Definition.Parameters(failureControlTestResults), supervisor.ActorInside, "failure-for-stop")); var failureAccess = failureControlTestResults.AfterCompleting(0); var restartAccess = restartFiveInOneSupervisorTestResults.AfterCompleting(5); for (var idx = 1; idx <= 5; ++idx) { failureAccess = failureControlTestResults.AfterCompleting(1); failure.Actor.FailNow(); failure.Actor.AfterFailure(); } Assert.Equal(5, failureAccess.ReadFrom <int>("failNowCount")); Assert.Equal(5, failureAccess.ReadFrom <int>("afterFailureCount")); failureAccess = failureControlTestResults.AfterCompleting(1); restartAccess = restartFiveInOneSupervisorTestResults.AfterCompleting(1); failure.Actor.FailNow(); failure.Actor.AfterFailure(); Assert.True(failure.ActorInside.IsStopped); Assert.Equal(6, failureAccess.ReadFrom <int>("failNowCount")); Assert.Equal(5, failureAccess.ReadFrom <int>("afterFailureCount")); Assert.Equal(6, restartAccess.ReadFrom <int>("informedCount")); }
public void Test5Intensity1PeriodRestartStrategy() { var restartFiveInOneSupervisorTestResults = new RestartFiveInOneSupervisorActor.RestartFiveInOneSupervisorTestResults(); var supervisor = TestWorld.ActorFor <ISupervisor>( Definition.Has <RestartFiveInOneSupervisorActor>( Definition.Parameters(restartFiveInOneSupervisorTestResults), "resuming-5-1-supervisor")); var failureControlTestResults = new FailureControlActor.FailureControlTestResults(); var failure = TestWorld.ActorFor <IFailureControl>( Definition.Has <FailureControlActor>( Definition.Parameters(failureControlTestResults), supervisor.ActorInside, "failure-for-stop")); failureControlTestResults.UntilFailNow = Until(5); failureControlTestResults.UntilAfterFail = Until(5); for (var idx = 1; idx <= 5; ++idx) { restartFiveInOneSupervisorTestResults.UntilInform = Until(1); failure.Actor.FailNow(); restartFiveInOneSupervisorTestResults.UntilInform.Completes(); failure.Actor.AfterFailure(); } failureControlTestResults.UntilFailNow.Completes(); failureControlTestResults.UntilAfterFail.Completes(); Assert.Equal(5, failureControlTestResults.FailNowCount.Get()); Assert.Equal(5, failureControlTestResults.AfterFailureCount.Get()); failureControlTestResults.UntilFailNow = Until(1); failureControlTestResults.UntilAfterFail = Until(0); restartFiveInOneSupervisorTestResults.UntilInform = Until(1); failure.Actor.FailNow(); failure.Actor.AfterFailure(); failureControlTestResults.UntilFailNow.Completes(); restartFiveInOneSupervisorTestResults.UntilInform.Completes(); failureControlTestResults.UntilAfterFail.Completes(); Assert.True(failure.ActorInside.IsStopped); Assert.Equal(6, failureControlTestResults.FailNowCount.Get()); Assert.Equal(6, restartFiveInOneSupervisorTestResults.InformedCount.Get()); Assert.Equal(5, failureControlTestResults.AfterFailureCount.Get()); }