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)); }
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)); }
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); var access = failureControlTestResults.AfterCompleting(4); supervised.RestartWithin(1000, 5, SupervisionStrategyConstants.Scope.One); Assert.Equal(2, access.ReadFrom <int>("beforeStartCount")); Assert.Equal(1, access.ReadFrom <int>("beforeRestartCount")); Assert.Equal(1, access.ReadFrom <int>("afterRestartCount")); }
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)); }