Exemple #1
0
 public void MissingTransitionInTaskState_IsNotValid()
 {
     Assert.Throws <ValidationException>(() =>
                                         StepFunctionBuilder.StateMachine()
                                         .StartAt("Initial")
                                         .State("Initial", StepFunctionBuilder.TaskState()
                                                .Resource("arn"))
                                         .Build());
 }
Exemple #2
0
 public void NegativeTimeoutSecondsInTaskState_IsNotValid()
 {
     Assert.Throws <ValidationException>(() =>
                                         StepFunctionBuilder.StateMachine()
                                         .StartAt("Initial")
                                         .State("Initial", StepFunctionBuilder.TaskState()
                                                .Transition(StepFunctionBuilder.End())
                                                .TimeoutSeconds(-1)
                                                .Resource("arn"))
                                         .Build());
 }
Exemple #3
0
        public void TaskStateWithEnd()
        {
            StateMachine stateMachine = StepFunctionBuilder.StateMachine()
                                        .StartAt("InitialState")
                                        .State("InitialState", StepFunctionBuilder.TaskState()
                                               .Resource("resource-arn")
                                               .Transition(StepFunctionBuilder.End()))
                                        .Build();

            AssertStateMachine(stateMachine, "TaskStateWithEnd.json");
        }
Exemple #4
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 #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
 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 #7
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 #8
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 #9
0
 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());
 }
Exemple #10
0
 [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();
 }
Exemple #11
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 #12
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 #13
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 #14
0
 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());
 }
Exemple #15
0
        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");
        }
Exemple #16
0
        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");
        }
Exemple #17
0
        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");
        }
Exemple #18
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");
        }