예제 #1
0
 public Delay(IThreadOperations threadOperations, ITimeService timeService)
 {
     _threadOperations = threadOperations;
     _timeService      = timeService;
     _runCount         = 1;
     RecoveryOptions   = new RecoveryOptionsDto();
 }
예제 #2
0
        protected override void When()
        {
            _mockRecoveryTask = Substitute.For <IRunnable>();
            _mockRecoveryTask
            .Run()
            .Returns(SequenceResultEnum.Fail);
            _recoveryOptions = new RecoveryOptionsDto(true, _mockRecoveryTask.Run);

            MockFirstTask
            .GetRunCount()
            .Returns(_runCountFirst);
            MockFirstTask
            .Run()
            .Returns(SequenceResultEnum.Success);

            MockSecondTask
            .GetRunCount()
            .Returns(_runCountSecond);
            MockSecondTask
            .Run()
            .Returns(SequenceResultEnum.Success);

            MockThirdTask
            .RecoveryOptions
            .Returns(_recoveryOptions);
            MockThirdTask
            .GetRunCount()
            .Returns(_runCountThird);
            MockThirdTask
            .Run()
            .Returns(SequenceResultEnum.Fail);

            _result = SUT.Run();
        }
 protected Sequence(List <IRunnable> tasks, RecoveryOptionsDto recoveryOptions, Action failAction, int runCount)
 {
     Tasks           = tasks;
     RecoveryOptions = recoveryOptions;
     FailAction      = failAction;
     _runCount       = runCount;
 }
예제 #4
0
        protected override void When()
        {
            _recoveryOptions = new RecoveryOptionsDto();

            MockFirstTask
            .GetRunCount()
            .Returns(_runCountFirst);
            MockFirstTask
            .Run()
            .Returns(SequenceResultEnum.Success);

            MockSecondTask
            .GetRunCount()
            .Returns(_runCountSecond);
            MockSecondTask
            .Run()
            .Returns(SequenceResultEnum.Success);

            MockThirdTask
            .RecoveryOptions
            .Returns(_recoveryOptions);
            MockThirdTask
            .GetRunCount()
            .Returns(_runCountThird);
            MockThirdTask
            .Run()
            .Returns(SequenceResultEnum.Fail);

            _result = SUT.Run();
        }
예제 #5
0
        public CheckForLightCommand(IValidateOperationService validateOperationService,
                                    IAnalogOperations analogOperations, ILightSensor lightSensor, IThreadOperations threadOperations)
        {
            _validateOperationService = validateOperationService;
            _analogOperations         = analogOperations;
            _lightSensor      = lightSensor;
            _threadOperations = threadOperations;

            RecoveryOptions = new RecoveryOptionsDto(true, Recover);
        }
        public OpenDoorCommand(IAxisOperations axisOperations, IValidateOperationService validateOperationService,
                               IDoor door, ICeilingSensor ceiling)
        {
            _axisOperations           = axisOperations;
            _validateOperationService = validateOperationService;
            _door    = door;
            _ceiling = ceiling;

            RecoveryOptions = new RecoveryOptionsDto();
        }
예제 #7
0
 public SerialSequence(
     List <IRunnable> tasks,
     RecoveryOptionsDto recoveryOptions,
     Action failAction,
     int runCount
     ) : base(
         tasks,
         recoveryOptions,
         failAction,
         runCount
         )
 {
 }
예제 #8
0
 /// <exception cref="ArgumentOutOfRangeException"></exception>
 public ISequence CreateSequence(
     int type,
     List <IRunnable> tasks,
     RecoveryOptionsDto recoveryOptions,
     Action failAction,
     int runCount
     )
 {
     return(type switch
     {
         ISequenceFactory.Serial => new SerialSequence(tasks, recoveryOptions, failAction, runCount),
         ISequenceFactory.Parelell => new ParrellelSequence(tasks, recoveryOptions, failAction, runCount,
                                                            _threadOperations),
         _ => throw new ArgumentOutOfRangeException()
     });
 public ParrellelSequence(
     List <IRunnable> tasks,
     RecoveryOptionsDto recoveryOptions,
     Action failAction,
     int runCount,
     IThreadOperations threadOperations
     ) : base(
         tasks,
         recoveryOptions,
         failAction,
         runCount
         )
 {
     _threadOperations = threadOperations;
 }