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()); }