Esempio n. 1
0
        public void TestSuspendResume()
        {
            var supervisor = World.ActorFor <IFailureControlSender>(
                Definition.Has <SuspendedSenderSupervisorActor>(Definition.NoParameters, "suspended-sender-supervisor"));
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = World.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults),
                    SuspendedSenderSupervisorActor.Instance.Value,
                    "queueArray",
                    "failure"));
            var times = 25;

            failureControlTestResults.UntilFailNow = Until(1);
            SuspendedSenderSupervisorActor.Instance.Value.UntilInformed = Until(1);
            failureControlTestResults.UntilFailureCount = Until(times - 1);
            supervisor.SendUsing(failure, times);

            failure.FailNow();
            failureControlTestResults.UntilFailNow.Completes();
            SuspendedSenderSupervisorActor.Instance.Value.UntilInformed.Completes();
            failureControlTestResults.UntilFailureCount.Completes();

            Assert.Equal(1, SuspendedSenderSupervisorActor.Instance.Value.InformedCount.Get());
            Assert.True(failureControlTestResults.AfterFailureCount.Get() >= times - 1);
        }
        public void TestSuspendResume()
        {
            var testResults = new SuspendedSenderSupervisorResults();

            var failureControlSender = World.ActorFor <IFailureControlSender>(
                Definition.Has <SuspendedSenderSupervisorActor>(Definition.Parameters(testResults), "suspended-sender-supervisor"));

            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = World.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults),
                    SuspendedSenderSupervisorActor.Instance.Value,
                    "queueArray",
                    "failure"));
            var times            = 25;
            var failureAccess    = failureControlTestResults.AfterCompleting(times);
            var supervisorAccess = testResults.AfterCompleting(1);

            failureControlSender.SendUsing(failure, times);

            failure.FailNow();

            Assert.Equal(1, supervisorAccess.ReadFromExpecting("informedCount", 1));
            Assert.Equal(times, failureAccess.ReadFromExpecting("afterFailureCountCount", times));
        }
Esempio n. 3
0
        public void TestExpectedAttributes()
        {
            var testResults = new FailureControlActor.FailureControlTestResults();
            var failure     = TestWorld.ActorFor <IFailureControl>(() => new FailureControlActor(testResults), "failure");
            var exception   = new ApplicationException("Failed");

            var supervised = new StageSupervisedActor <IFailureControl>(failure.ActorInside, exception);

            Assert.Equal("failure", supervised.Address.Name);
            Assert.Equal(World.DefaultSupervisor, supervised.Supervisor);
            Assert.Equal(exception, supervised.Error);
        }
        public void TestEscalate()
        {
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = TestWorld.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults), "failure"));
            var exception  = new ApplicationException("Failed");
            var supervised = new StageSupervisedActor <IFailureControl>(failure.ActorInside, exception);

            supervised.Escalate();

            Assert.Equal(1, failureControlTestResults.StoppedCount.Get());
        }
Esempio n. 5
0
        public void TestStopOne()
        {
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = World.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults), "failure"));
            var exception  = new ApplicationException("Failed");
            var supervised = new StageSupervisedActor <IFailureControl>(FailureControlActor.Instance.Value, exception);

            var access = failureControlTestResults.AfterCompleting(1);

            supervised.Stop(SupervisionStrategyConstants.Scope.One);

            Assert.Equal(1, access.ReadFromExpecting("stoppedCount", 1));
        }
Esempio n. 6
0
        public void TestEscalate()
        {
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = TestWorld.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults), "failure"));
            var exception  = new ApplicationException("Failed");
            var supervised = new StageSupervisedActor <IFailureControl>(failure.ActorInside, exception);

            var access = failureControlTestResults.AfterCompleting(1);

            supervised.Escalate();

            Assert.Equal(1, access.ReadFrom <int>("stoppedCount"));
        }
        public void TestRestart()
        {
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = TestWorld.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults), "failure"));
            var exception  = new ApplicationException("Failed");
            var supervised = new StageSupervisedActor <IFailureControl>(failure.ActorInside, exception);

            supervised.RestartWithin(1000, 5, SupervisionStrategyConstants.Scope.One);

            Assert.Equal(2, failureControlTestResults.BeforeStartCount.Get());
            Assert.Equal(1, failureControlTestResults.BeforeRestartCount.Get());
            Assert.Equal(1, failureControlTestResults.AfterRestartCount.Get());
        }
        public void TestStopOne()
        {
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = World.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults), "failure"));
            var exception  = new ApplicationException("Failed");
            var supervised = new StageSupervisedActor <IFailureControl>(FailureControlActor.Instance.Value, exception);

            failureControlTestResults.UntilStopped = Until(1);

            supervised.Stop(SupervisionStrategyConstants.Scope.One);
            failureControlTestResults.UntilStopped.Completes();

            Assert.True(FailureControlActor.Instance.Value.IsStopped);
        }
Esempio n. 9
0
        public void TestSuspendResume()
        {
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = World.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults), "failure"));

            var exception  = new ApplicationException("Failed");
            var supervised = new StageSupervisedActor <IFailureControl>(FailureControlActor.Instance.Value, exception);

            var access = failureControlTestResults.AfterCompleting(1);

            supervised.Suspend();
            Assert.True(IsSuspended(FailureControlActor.Instance.Value));

            failure.AfterFailure(); // into suspended stowage
            supervised.Resume();    // sent

            Assert.Equal(1, access.ReadFromExpecting("afterFailureCount", 1));
        }
        public void TestSuspendResume()
        {
            var failureControlTestResults = new FailureControlActor.FailureControlTestResults();
            var failure = World.ActorFor <IFailureControl>(
                Definition.Has <FailureControlActor>(
                    Definition.Parameters(failureControlTestResults), "failure"));

            failureControlTestResults.UntilAfterFail = Until(1);
            var exception  = new ApplicationException("Failed");
            var supervised = new StageSupervisedActor <IFailureControl>(FailureControlActor.Instance.Value, exception);

            supervised.Suspend();
            Assert.True(IsSuspended(FailureControlActor.Instance.Value));

            failure.AfterFailure();                               // into suspended stowage
            supervised.Resume();                                  // sent
            failureControlTestResults.UntilAfterFail.Completes(); // delivered

            Assert.Equal(1, failureControlTestResults.AfterFailureCount.Get());
        }