Ejemplo n.º 1
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());
        }
Ejemplo n.º 3
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));
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 7
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));
        }
Ejemplo n.º 8
0
        public void TestStopAll()
        {
            var pingTestResults = new PingActor.PingTestResults();

            World.ActorFor <IPing>(Definition.Has <PingActor>(Definition.Parameters(pingTestResults), "ping"));

            var pongTestResults = new PongActor.PongTestResults();

            World.ActorFor <IPong>(Definition.Has <PongActor>(Definition.Parameters(pongTestResults), "pong"));

            var pingAccess = pingTestResults.AfterCompleting(1);
            var pongAccess = pongTestResults.AfterCompleting(1);

            var supervised = new StageSupervisedActor <IPing>(PingActor.Instance.Value, new ApplicationException("Failed"));

            supervised.Stop(SupervisionStrategyConstants.Scope.All);

            Assert.Equal(1, pingAccess.ReadFromExpecting("stopCount", 1));
            Assert.Equal(1, pongAccess.ReadFromExpecting("stopCount", 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());
        }
        public void TestStopAll()
        {
            var pingTestResults = new PingActor.PingTestResults();

            World.ActorFor <IPing>(Definition.Has <PingActor>(Definition.Parameters(pingTestResults), "ping"));

            var pongTestResults = new PongActor.PongTestResults();

            World.ActorFor <IPong>(Definition.Has <PongActor>(Definition.Parameters(pongTestResults), "pong"));

            pingTestResults.UntilStopped = Until(1);
            pongTestResults.UntilStopped = Until(1);

            var supervised = new StageSupervisedActor <IPing>(PingActor.Instance.Value, new ApplicationException("Failed"));

            supervised.Stop(SupervisionStrategyConstants.Scope.All);

            pingTestResults.UntilStopped.Completes();
            pongTestResults.UntilStopped.Completes();

            Assert.True(PingActor.Instance.Value.IsStopped);
            Assert.True(PongActor.Instance.Value.IsStopped);
        }