Exemplo n.º 1
0
        public void IsConnected_WorkflowWithTwoDoublyConnectedStates_ReturnTrue()
        {
            // Arrange
            var workflow = new IeWorkflow
            {
                States = new List <IeState>
                {
                    new IeState {
                        Name = "New", IsInitial = true
                    },
                    new IeState {
                        Name = "Done"
                    }
                },
                TransitionEvents = new List <IeTransitionEvent>
                {
                    new IeTransitionEvent {
                        FromState = "New", ToState = "Done"
                    },
                    new IeTransitionEvent {
                        FromState = "Done", ToState = "New"
                    }
                }
            };
            var graph = new WorkflowGraph(workflow);

            // Assert
            Assert.AreEqual(true, graph.IsConnected());
        }
Exemplo n.º 2
0
        public void Construction_WorkflowTransitionWithoutToState_ThrowsArgumentException()
        {
            // Arrange
            var workflow = new IeWorkflow
            {
                States = new List <IeState> {
                    new IeState {
                        Name = "New"
                    }
                },
                TransitionEvents = new List <IeTransitionEvent> {
                    new IeTransitionEvent {
                        FromState = "New"
                    }
                }
            };

            try
            {
                // Act
                var graph = new WorkflowGraph(workflow);
            }
            catch (ArgumentException ex)
            {
                // Assert
                Assert.IsNotNull(ex);
                return;
            }

            Assert.Fail("Expected ArgumentException to have been thrown.");
        }
Exemplo n.º 3
0
        public void IsConnected_ComplexConnectedWorkflow_ReturnsTrue()
        {
            // Arrange
            var workflow = new IeWorkflow
            {
                States = new List <IeState>
                {
                    new IeState {
                        Name = "New", IsInitial = true
                    },
                    new IeState {
                        Name = "Ready"
                    },
                    new IeState {
                        Name = "In Progress"
                    },
                    new IeState {
                        Name = "On Hold"
                    },
                    new IeState {
                        Name = "Done"
                    }
                },
                TransitionEvents = new List <IeTransitionEvent>
                {
                    new IeTransitionEvent {
                        FromState = "New", ToState = "Ready"
                    },
                    new IeTransitionEvent {
                        FromState = "Ready", ToState = "In Progress"
                    },
                    new IeTransitionEvent {
                        FromState = "In Progress", ToState = "On Hold"
                    },
                    new IeTransitionEvent {
                        FromState = "On Hold", ToState = "In Progress"
                    },
                    new IeTransitionEvent {
                        FromState = "In Progress", ToState = "Done"
                    }
                }
            };
            var graph = new WorkflowGraph(workflow);

            // Assert
            Assert.AreEqual(true, graph.IsConnected());
        }
Exemplo n.º 4
0
        public void IsConnected_WorkflowWithInitialState_ReturnTrue()
        {
            // Arrange
            var workflow = new IeWorkflow
            {
                States = new List <IeState> {
                    new IeState {
                        Name = "New", IsInitial = true
                    }
                },
                TransitionEvents = new List <IeTransitionEvent>()
            };
            var graph = new WorkflowGraph(workflow);

            // Assert
            Assert.AreEqual(true, graph.IsConnected());
        }
Exemplo n.º 5
0
        public void IsConnected_WorkflowWithTwoDisconnectedStates_ReturnFalse()
        {
            // Arrange
            var workflow = new IeWorkflow
            {
                States = new List <IeState>
                {
                    new IeState {
                        Name = "New", IsInitial = true
                    },
                    new IeState {
                        Name = "Done"
                    }
                },
                TransitionEvents = new List <IeTransitionEvent>()
            };
            var graph = new WorkflowGraph(workflow);

            // Assert
            Assert.AreEqual(false, graph.IsConnected());
        }