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"); }
[Fact]// public void RetrierInTaskState_OnlyErrorEqualsSet_IsValid() { StepFunctionBuilder.StateMachine() .StartAt("Initial") .State("Initial", StepFunctionBuilder.TaskState() .Transition(StepFunctionBuilder.End()) .Retrier(StepFunctionBuilder.Retrier() .RetryOnAllErrors()) .Resource("arn")) .Build(); }
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()); }
[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(); }
[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(); }
[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(); }
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()); }
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()); }
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()); }
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()); }
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"); }