public void StepByStepFirstAndLastCallIsSingle() { var provider = new NodeDefinitionProvider(); provider.Register("FirstCall"); provider.Register("ManyCalls", "FirstCall"); provider.Register("LastCall", "ManyCalls"); provider.SetRoot("LastCall"); var node = provider.GetByName("LastCall"); node.SingleCall = true; node = provider.GetByName("FirstCall"); node.SingleCall = true; List <string> messages = new List <string>(); var nodeRegistry = new NodeRegistry <string>(); nodeRegistry.Register("FirstCall", new BaseNode <string>(new FirstCallDataDriver(messages), provider.GetByName("FirstCall"))); nodeRegistry.Register("ManyCalls", new BaseNode <string>(new ManyCallsDataDriver(messages), provider.GetByName("ManyCalls"))); nodeRegistry.Register("LastCall", new BaseNode <string>(new LastCallDataDriver(messages), provider.GetByName("LastCall"))); var runner = new DataNodeRunner <string>(provider, nodeRegistry); runner.Run(); Assert.AreEqual("FirstCall", messages[0]); Assert.AreEqual("Data0", messages[1]); Assert.AreEqual("LastCall", messages[2]); Assert.AreEqual("Data1", messages[3]); Assert.AreEqual("Data2", messages[4]); }
private NodeDefinition Attach(NodeDefinition nodeDefinition) { if (_current != null) { nodeDefinition.DependsOn.Add(_current.Name); } _current = nodeDefinition; _nodeDefinitionProvider.SetRoot(nodeDefinition.Name); return(nodeDefinition); }