public void TestRestartForeverStrategy() { var restartForeverSupervisorTestResults = new RestartForeverSupervisorActor.RestartForeverSupervisorTestResults(); var supervisor = TestWorld.ActorFor <ISupervisor>( Definition.Has <RestartForeverSupervisorActor>( Definition.Parameters(restartForeverSupervisorTestResults), "restart-forever-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(20); failureControlTestResults.UntilAfterFail = Until(20); for (var idx = 1; idx <= 20; ++idx) { restartForeverSupervisorTestResults.UntilInform = Until(1); failure.Actor.FailNow(); restartForeverSupervisorTestResults.UntilInform.Completes(); failure.Actor.AfterFailure(); } failureControlTestResults.UntilFailNow.Completes(); failureControlTestResults.UntilAfterFail.Completes(); failureControlTestResults.UntilFailNow = Until(20); failureControlTestResults.UntilAfterFail = Until(20); for (var idx = 1; idx <= 20; ++idx) { restartForeverSupervisorTestResults.UntilInform = Until(1); failure.Actor.FailNow(); restartForeverSupervisorTestResults.UntilInform.Completes(); failure.Actor.AfterFailure(); } failureControlTestResults.UntilFailNow.Completes(); failureControlTestResults.UntilAfterFail.Completes(); Assert.Equal(40, failureControlTestResults.FailNowCount.Get()); Assert.Equal(40, failureControlTestResults.AfterFailureCount.Get()); Assert.True(40 <= restartForeverSupervisorTestResults.InformedCount.Get()); }
public void TestRestartForeverStrategy() { var restartForeverSupervisorTestResults = new RestartForeverSupervisorActor.RestartForeverSupervisorTestResults(); var supervisor = TestWorld.ActorFor <ISupervisor>( Definition.Has <RestartForeverSupervisorActor>( Definition.Parameters(restartForeverSupervisorTestResults), "restart-forever-supervisor")); var failureControlTestResults = new FailureControlActor.FailureControlTestResults(); var failure = TestWorld.ActorFor <IFailureControl>( Definition.Has <FailureControlActor>( Definition.Parameters(failureControlTestResults), supervisor.ActorInside, "failure-for-stop")); var failedAccess = failureControlTestResults.AfterCompleting(40); var restartAccess = restartForeverSupervisorTestResults.AfterCompleting(40); for (var idx = 1; idx <= 20; ++idx) { failure.Actor.FailNow(); failure.Actor.AfterFailure(); } Assert.Equal(20, failedAccess.ReadFrom <int>("failNowCount")); Assert.Equal(20, failedAccess.ReadFrom <int>("afterFailureCount")); failedAccess = failureControlTestResults.AfterCompleting(40); for (var idx = 1; idx <= 20; ++idx) { failure.Actor.FailNow(); failure.Actor.AfterFailure(); } failureControlTestResults.UntilFailNow.Completes(); failureControlTestResults.UntilAfterFail.Completes(); Assert.Equal(40, failedAccess.ReadFrom <int>("failNowCount")); Assert.Equal(40, failedAccess.ReadFrom <int>("afterFailureCount")); Assert.True(40 <= restartAccess.ReadFrom <int>("informedCount")); }