public void MissingTransitionInTaskState_IsNotValid() { Assert.Throws <ValidationException>(() => StepFunctionBuilder.StateMachine() .StartAt("Initial") .State("Initial", StepFunctionBuilder.TaskState() .Resource("arn")) .Build()); }
public void NegativeTimeoutSecondsInTaskState_IsNotValid() { Assert.Throws <ValidationException>(() => StepFunctionBuilder.StateMachine() .StartAt("Initial") .State("Initial", StepFunctionBuilder.TaskState() .Transition(StepFunctionBuilder.End()) .TimeoutSeconds(-1) .Resource("arn")) .Build()); }
public void TaskStateWithEnd() { StateMachine stateMachine = StepFunctionBuilder.StateMachine() .StartAt("InitialState") .State("InitialState", StepFunctionBuilder.TaskState() .Resource("resource-arn") .Transition(StepFunctionBuilder.End())) .Build(); AssertStateMachine(stateMachine, "TaskStateWithEnd.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(); }
[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(); }
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_MaxAttemptsZero_IsValid() { StepFunctionBuilder.StateMachine() .StartAt("Initial") .State("Initial", StepFunctionBuilder.TaskState() .Transition(StepFunctionBuilder.End()) .Retrier(StepFunctionBuilder.Retrier() .MaxAttempts(0) .RetryOnAllErrors()) .Resource("arn")) .Build(); }
public void CatcherInTaskState_InvalidTransition_IsNotValid() { Assert.Throws <ValidationException>(() => StepFunctionBuilder.StateMachine() .StartAt("Initial") .State("Initial", StepFunctionBuilder.TaskState() .Transition(StepFunctionBuilder.End()) .Catcher(StepFunctionBuilder.Catcher() .Transition(StepFunctionBuilder.Next("NoSuchState")) .CatchAll()) .Resource("arn")) .Build()); }
[Fact]// public void CatcherInTaskState_ValidTransition_IsValid() { StepFunctionBuilder.StateMachine() .StartAt("Initial") .State("Initial", StepFunctionBuilder.TaskState() .Transition(StepFunctionBuilder.End()) .Catcher(StepFunctionBuilder.Catcher() .Transition(StepFunctionBuilder.Next("Terminal")) .CatchAll()) .Resource("arn")) .State("Terminal", StepFunctionBuilder.SucceedState()) .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 CatcherInTaskState_CatchAllIsNotLastCatcher_IsNotValid() { Assert.Throws <ValidationException>(() => StepFunctionBuilder.StateMachine() .StartAt("Initial") .State("Initial", StepFunctionBuilder.TaskState() .Transition(StepFunctionBuilder.End()) .Catcher(StepFunctionBuilder.Catcher() .Transition(StepFunctionBuilder.Next("Terminal")) .CatchAll()) .Catcher(StepFunctionBuilder.Catcher() .Transition(StepFunctionBuilder.Next("Terminal")) .ErrorEquals("Foo", "Bar")) .Resource("arn")) .State("Terminal", StepFunctionBuilder.SucceedState()) .Build()); }
public void SingleTaskState() { StateMachine stateMachine = StepFunctionBuilder.StateMachine() .StartAt("InitialState") .State("InitialState", StepFunctionBuilder.TaskState() .Comment("Initial State") .TimeoutSeconds(10) .HeartbeatSeconds(1) .Transition(StepFunctionBuilder.Next("NextState")) .Resource("resource-arn") .InputPath("$.input") .ResultPath("$.result") .OutputPath("$.output")) .State("NextState", StepFunctionBuilder.SucceedState()) .Build(); AssertStateMachine(stateMachine, "SimpleTaskState.json"); }
public void SimpleParallelStateWithTasks() { StateMachine stateMachine = StepFunctionBuilder.StateMachine() .StartAt("para") .State("para", StepFunctionBuilder.ParallelState() .Transition(StepFunctionBuilder.End()) .Branches( StepFunctionBuilder.Branch() .StartAt("t") .State("t", StepFunctionBuilder.TaskState().Resource("t").Transition(StepFunctionBuilder.End())), StepFunctionBuilder.Branch() .StartAt("u") .State("u", StepFunctionBuilder.TaskState().Resource("u").Transition(StepFunctionBuilder.End())) )) .Build(); AssertStateMachine(stateMachine, "SimpleParallelStateWithTasks.json"); }
public void SingleTaskStateWithCatchers() { StateMachine stateMachine = StepFunctionBuilder.StateMachine() .StartAt("InitialState") .State("InitialState", StepFunctionBuilder.TaskState() .Transition(StepFunctionBuilder.Next("NextState")) .Resource("resource-arn") .Catchers(StepFunctionBuilder.Catcher() .ErrorEquals("Foo", "Bar") .Transition(StepFunctionBuilder.Next("RecoveryState")) .ResultPath("$.result-path"), StepFunctionBuilder.Catcher() .CatchAll() .Transition(StepFunctionBuilder.Next("OtherRecoveryState")))) .State("NextState", StepFunctionBuilder.SucceedState()) .State("RecoveryState", StepFunctionBuilder.SucceedState()) .State("OtherRecoveryState", StepFunctionBuilder.SucceedState()) .Build(); AssertStateMachine(stateMachine, "SimpleTaskStateWithCatchers.json"); }
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"); }