Exemple #1
0
        public void InstantiateWorkflow()
        {
            // Arrange
            var workplan = WorkplanDummy.CreateFull();

            // Act
            var context  = new FakeContext();
            var workflow = WorkflowFactory.Instantiate(workplan, context);

            // Simple assert
            Assert.AreEqual(workplan.Connectors.Count(), workflow.Places.Count(), "Not all connectors transformed to places!");
            Assert.AreEqual(workplan.Steps.Count(), workflow.Transitions.Count(), "Not all steps transformed to transitions!");
            Assert.IsTrue(workflow.Transitions.Cast <DummyTransition>().All(t => t.Context == context), "Context not passed to all transitions!");
            // Structure assert
            var transitions = workflow.Transitions;

            Assert.AreEqual(2, transitions[0].Outputs.Length);
            Assert.AreEqual(transitions[0].Outputs[1], transitions[1].Inputs[0]);
            Assert.AreEqual(transitions[0].Outputs[0], transitions[2].Inputs[0]);
            Assert.AreEqual(transitions[1].Outputs[0], transitions[2].Inputs[0]);
            Assert.AreEqual(transitions[2].Outputs[0], transitions[2].Outputs[1]);
            Assert.AreEqual(transitions[2].Outputs[0], workflow.EndPlaces().First());
        }