Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }