Example #1
0
        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());
        }
Example #2
0
        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"));
        }