Exemple #1
0
        public void ParallelStateWithRetriers()
        {
            StateMachine stateMachine = StepFunctionBuilder.StateMachine()
                                        .StartAt("InitialState")
                                        .State("InitialState", StepFunctionBuilder.ParallelState()
                                               .Transition(StepFunctionBuilder.End())
                                               .Branches(
                                                   StepFunctionBuilder.Branch()
                                                   .Comment("Branch one")
                                                   .StartAt("BranchOneInitial")
                                                   .State("BranchOneInitial", StepFunctionBuilder.SucceedState()),
                                                   StepFunctionBuilder.Branch()
                                                   .Comment("Branch two")
                                                   .StartAt("BranchTwoInitial")
                                                   .State("BranchTwoInitial", StepFunctionBuilder.SucceedState())
                                                   )
                                               .Retriers(StepFunctionBuilder.Retrier()
                                                         .ErrorEquals("Foo", "Bar")
                                                         .IntervalSeconds(10)
                                                         .BackoffRate(1.0)
                                                         .MaxAttempts(3),
                                                         StepFunctionBuilder.Retrier()
                                                         .RetryOnAllErrors()
                                                         .IntervalSeconds(10)
                                                         .BackoffRate(1.0)
                                                         .MaxAttempts(3)
                                                         ))
                                        .Build();

            AssertStateMachine(stateMachine, "ParallelStateWithRetriers.json");
        }
Exemple #2
0
 [Fact]//
 public void RetrierInTaskState_OnlyErrorEqualsSet_IsValid()
 {
     StepFunctionBuilder.StateMachine()
     .StartAt("Initial")
     .State("Initial", StepFunctionBuilder.TaskState()
            .Transition(StepFunctionBuilder.End())
            .Retrier(StepFunctionBuilder.Retrier()
                     .RetryOnAllErrors())
            .Resource("arn"))
     .Build();
 }
Exemple #3
0
 public void RetrierInTaskState_RetryAllHasOtherErrorCodes_IsNotValid()
 {
     Assert.Throws <ValidationException>(() =>
                                         StepFunctionBuilder.StateMachine()
                                         .StartAt("Initial")
                                         .State("Initial", StepFunctionBuilder.TaskState()
                                                .Transition(StepFunctionBuilder.End())
                                                .Retrier(StepFunctionBuilder.Retrier()
                                                         .ErrorEquals("Foo", "Bar", ErrorCodes.ALL))
                                                .Resource("arn"))
                                         .Build());
 }
Exemple #4
0
 [Fact]//
 public void RetrierInTaskState_BackoffRateGreaterThanOne_IsValid()
 {
     StepFunctionBuilder.StateMachine()
     .StartAt("Initial")
     .State("Initial", StepFunctionBuilder.TaskState()
            .Transition(StepFunctionBuilder.End())
            .Retrier(StepFunctionBuilder.Retrier()
                     .BackoffRate(1.5)
                     .RetryOnAllErrors())
            .Resource("arn"))
     .Build();
 }
Exemple #5
0
 [Fact]//
 public void RetrierInTaskState_IntervalSecondsPositive_IsValid()
 {
     StepFunctionBuilder.StateMachine()
     .StartAt("Initial")
     .State("Initial", StepFunctionBuilder.TaskState()
            .Transition(StepFunctionBuilder.End())
            .Retrier(StepFunctionBuilder.Retrier()
                     .IntervalSeconds(10)
                     .RetryOnAllErrors())
            .Resource("arn"))
     .Build();
 }
Exemple #6
0
 [Fact]//
 public void RetrierInTaskState_MaxAttemptsZero_IsValid()
 {
     StepFunctionBuilder.StateMachine()
     .StartAt("Initial")
     .State("Initial", StepFunctionBuilder.TaskState()
            .Transition(StepFunctionBuilder.End())
            .Retrier(StepFunctionBuilder.Retrier()
                     .MaxAttempts(0)
                     .RetryOnAllErrors())
            .Resource("arn"))
     .Build();
 }
Exemple #7
0
 public void RetrierInTaskState_BackoffRateLessThanOne_IsNotValid()
 {
     Assert.Throws <ValidationException>(() =>
                                         StepFunctionBuilder.StateMachine()
                                         .StartAt("Initial")
                                         .State("Initial", StepFunctionBuilder.TaskState()
                                                .Transition(StepFunctionBuilder.End())
                                                .Retrier(StepFunctionBuilder.Retrier()
                                                         .BackoffRate(0.5)
                                                         .RetryOnAllErrors())
                                                .Resource("arn"))
                                         .Build());
 }
Exemple #8
0
 public void RetrierInTaskState_IntervalSecondsZero_IsNotValid()
 {
     Assert.Throws <ValidationException>(() =>
                                         StepFunctionBuilder.StateMachine()
                                         .StartAt("Initial")
                                         .State("Initial", StepFunctionBuilder.TaskState()
                                                .Transition(StepFunctionBuilder.End())
                                                .Retrier(StepFunctionBuilder.Retrier()
                                                         .IntervalSeconds(0)
                                                         .RetryOnAllErrors())
                                                .Resource("arn"))
                                         .Build());
 }
Exemple #9
0
 public void RetrierInTaskState_MaxAttemptsNegative_IsNotValid()
 {
     Assert.Throws <ValidationException>(() =>
                                         StepFunctionBuilder.StateMachine()
                                         .StartAt("Initial")
                                         .State("Initial", StepFunctionBuilder.TaskState()
                                                .Transition(StepFunctionBuilder.End())
                                                .Retrier(StepFunctionBuilder.Retrier()
                                                         .MaxAttempts(-1)
                                                         .RetryOnAllErrors())
                                                .Resource("arn"))
                                         .Build());
 }
Exemple #10
0
 public void ParallelStateInvalidRetrier_IsNotValid()
 {
     Assert.Throws <ValidationException>(() =>
                                         StepFunctionBuilder.StateMachine()
                                         .StartAt("Initial")
                                         .State("Initial", StepFunctionBuilder.ParallelState()
                                                .Branch(StepFunctionBuilder.Branch()
                                                        .StartAt("InitialBranchState")
                                                        .State("InitialBranchState", StepFunctionBuilder.SucceedState()))
                                                .Transition(StepFunctionBuilder.End())
                                                .Retrier(StepFunctionBuilder.Retrier()
                                                         .IntervalSeconds(-1)))
                                         .Build());
 }
Exemple #11
0
        public void SingleTaskStateWithRetries()
        {
            StateMachine stateMachine = StepFunctionBuilder.StateMachine()
                                        .StartAt("InitialState")
                                        .State("InitialState", StepFunctionBuilder.TaskState()
                                               .Transition(StepFunctionBuilder.Next("NextState"))
                                               .Resource("resource-arn")
                                               .Retriers(StepFunctionBuilder.Retrier()
                                                         .ErrorEquals("Foo", "Bar")
                                                         .IntervalSeconds(20)
                                                         .MaxAttempts(3)
                                                         .BackoffRate(2.0),
                                                         StepFunctionBuilder.Retrier()
                                                         .RetryOnAllErrors()
                                                         .IntervalSeconds(30)
                                                         .MaxAttempts(10)
                                                         .BackoffRate(2.0)))
                                        .State("NextState", StepFunctionBuilder.SucceedState())
                                        .Build();

            AssertStateMachine(stateMachine, "SimpleTaskStateWithRetries.json");
        }