public void TestResumeForeverStrategy() { var resumeForeverSupervisorTestResults = new ResumeForeverSupervisorActor.ResumeForeverSupervisorTestResults(); var supervisor = TestWorld.ActorFor <ISupervisor>( Definition.Has <ResumeForeverSupervisorActor>( Definition.Parameters(resumeForeverSupervisorTestResults), "resume-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) { resumeForeverSupervisorTestResults.UntilInform = Until(1); failure.Actor.FailNow(); resumeForeverSupervisorTestResults.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) { resumeForeverSupervisorTestResults.UntilInform = Until(1); failure.Actor.FailNow(); resumeForeverSupervisorTestResults.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 <= resumeForeverSupervisorTestResults.InformedCount.Get()); }
public void TestResumeForeverStrategy() { var resumeForeverSupervisorTestResults = new ResumeForeverSupervisorActor.ResumeForeverSupervisorTestResults(); var supervisor = TestWorld.ActorFor <ISupervisor>( Definition.Has <ResumeForeverSupervisorActor>( Definition.Parameters(resumeForeverSupervisorTestResults), "resume-forever-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 resumeAccess = resumeForeverSupervisorTestResults.AfterCompleting(1); for (var idx = 1; idx <= 20; ++idx) { failureAccess = failureControlTestResults.AfterCompleting(1); failure.Actor.FailNow(); failure.Actor.AfterFailure(); } Assert.Equal(20, failureAccess.ReadFrom <int>("failNowCount")); Assert.Equal(20, failureAccess.ReadFrom <int>("afterFailureCount")); Assert.Equal(20, resumeAccess.ReadFrom <int>("informedCount")); failureAccess = failureControlTestResults.AfterCompleting(20); for (var idx = 1; idx <= 20; ++idx) { failure.Actor.FailNow(); failure.Actor.AfterFailure(); } Assert.Equal(40, failureAccess.ReadFrom <int>("failNowCount")); Assert.Equal(40, failureAccess.ReadFrom <int>("afterFailureCount")); Assert.True(40 <= resumeAccess.ReadFrom <int>("informedCount")); }