public void TestNotOperator() { var c = StateMachineBuilder.ChoiceState() .Choice(StateMachineBuilder.Choice() .Transition(StateMachineBuilder.Next("NextState")) .Condition(StateMachineBuilder.Not(StateMachineBuilder.StringEquals("$.varstr", "value")))) .Build(); var choices = c.Choices.ToArray(); Assert.False(choices[0].Condition.Match(JObject.FromObject(new { varstr = "value" }))); //Equal }
public void ChoiceStateWithNotCondition() { var stateMachine = StateMachineBuilder.StateMachine() .StartAt("InitialState") .State("InitialState", StateMachineBuilder.ChoiceState() .DefaultStateName("DefaultState") .Choice(StateMachineBuilder.Choice().Transition(StateMachineBuilder.Next("NextState")) .Condition(StateMachineBuilder.Not( StateMachineBuilder.StringGreaterThanEquals("$.var", "value"))))) .State("NextState", StateMachineBuilder.SucceedState()) .State("DefaultState", StateMachineBuilder.SucceedState()) .Build(); AssertStateMachine(stateMachine, "ChoiceStateWithNotCondition.json"); }
public void ChoiceStateWithComplexCondition() { var stateMachine = StateMachineBuilder.StateMachine() .StartAt("InitialState") .State("InitialState", StateMachineBuilder.ChoiceState() .DefaultStateName("DefaultState") .Choice(StateMachineBuilder.Choice().Transition(StateMachineBuilder.Next("NextState")) .Condition(StateMachineBuilder.And( StateMachineBuilder.StringGreaterThanEquals("$.var", "value"), StateMachineBuilder.StringLessThanEquals("$.other-var", "foo"), StateMachineBuilder.Or( StateMachineBuilder.NumericLessThan("$.numeric", 9000.1), StateMachineBuilder.Not(StateMachineBuilder.NumericGreaterThanEquals("$.numeric", 42)) ) )))) .State("NextState", StateMachineBuilder.SucceedState()) .State("DefaultState", StateMachineBuilder.SucceedState()) .Build(); AssertStateMachine(stateMachine, "ChoiceStateWithComplexCondition.json"); }