public void TriggerResult_NewInstanceWithVariables_CreatesANewInstance() { // Arrange var trigger = "SwitchOn"; Switcher switcher = new Switcher { Type = OnOffWorkflow.TYPE }; var transitionContext = new TransitionContext(switcher); var variable = new SwitcherWorkflowVariable(true); transitionContext.SetVariable <SwitcherWorkflowVariable>( SwitcherWorkflowVariable.KEY, variable); var canTrigger = true; // Act var result = new TriggerResult(trigger, transitionContext, canTrigger); // Assert Assert.IsNotNull(result); Assert.IsTrue(result.CanTrigger); Assert.IsFalse(result.IsAborted); Assert.AreSame(result.TriggerName, trigger); Assert.IsFalse(result.HasErrors); Assert.AreSame(result.CurrentState, switcher.State); var v = result.GetVariable <SwitcherWorkflowVariable>(SwitcherWorkflowVariable.KEY); Assert.IsNotNull(v); Assert.IsTrue(v.CanSwitch); }
public void TransitionContext_SetVariable_ReplacesExistingVariableValue() { // Arrange Switcher switcher = new Switcher { Type = OnOffWorkflow.TYPE }; var context = new TransitionContext(switcher); var variable = new SwitcherWorkflowVariable(true); context.SetVariable <SwitcherWorkflowVariable>( SwitcherWorkflowVariable.KEY, variable); Assert.IsTrue(context .GetVariable <SwitcherWorkflowVariable>(SwitcherWorkflowVariable.KEY) .CanSwitch); variable.CanSwitch = false; // Act context.SetVariable <SwitcherWorkflowVariable>( SwitcherWorkflowVariable.KEY, variable); // Assert Assert.IsNotNull(context); Assert.IsTrue(context.HasVariables); Assert.IsTrue(context.ContainsKey(SwitcherWorkflowVariable.KEY)); Assert.IsFalse(context .GetVariable <SwitcherWorkflowVariable>(SwitcherWorkflowVariable.KEY) .CanSwitch); }
public void TransitionContext_SetVariable_VariableIsSet() { // Arrange Switcher switcher = new Switcher { Type = OnOffWorkflow.TYPE }; var context = new TransitionContext(switcher); var variable = new SwitcherWorkflowVariable(true); // Act context.SetVariable <SwitcherWorkflowVariable>( SwitcherWorkflowVariable.KEY, variable); // Assert Assert.IsNotNull(context); Assert.IsTrue(context.HasVariables); Assert.IsTrue(context.ContainsKey(SwitcherWorkflowVariable.KEY)); }
public void TransitionContext_GetVariable_VariableReturned() { // Arrange Switcher switcher = new Switcher { Type = OnOffWorkflow.TYPE }; var context = new TransitionContext(switcher); var canSwitch = new SwitcherWorkflowVariable(true); context.SetVariable <SwitcherWorkflowVariable>( SwitcherWorkflowVariable.KEY, canSwitch); // Act var variable = context .GetVariable <SwitcherWorkflowVariable>(SwitcherWorkflowVariable.KEY); // Assert Assert.IsNotNull(variable); Assert.IsTrue(variable.CanSwitch); }
public void TriggerParam_NewInstanceWithVariables_CreatesANewInstance() { // Arrange var trigger = "SwitchOn"; Switcher switcher = new Switcher { Type = OnOffWorkflow.TYPE }; var variables = new Dictionary <string, WorkflowVariableBase>(); var variable = new SwitcherWorkflowVariable(true); variables.Add(SwitcherWorkflowVariable.KEY, variable); // Act var triggerParam = new TriggerParam(trigger, switcher, variables); // Assert Assert.NotNull(triggerParam); Assert.Equal(triggerParam.TriggerName, trigger); Assert.Equal(triggerParam.Instance, switcher); Assert.True(triggerParam.HasVariables); Assert.NotNull(triggerParam.Variables); }
public void CanTrigger_InitialStateIsOff_CanNotTriggerToStateOn() { // Arrange Switcher switcher = new Switcher { Type = OnOffWorkflow.TYPE }; WorkflowExecution execution = new WorkflowExecution(new OnOffWorkflow()); var variables = new Dictionary <string, WorkflowVariableBase>(); var variable = new SwitcherWorkflowVariable(false); variables.Add(SwitcherWorkflowVariable.KEY, variable); var triggerParam = new TriggerParam("SwitchOn", switcher, variables); // Act TriggerResult result = execution.CanTrigger(triggerParam); // Assert Assert.IsNotNull(result); Assert.AreEqual(false, result.CanTrigger); }