示例#1
0
        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]);
        }
示例#2
0
        private NodeDefinition Attach(NodeDefinition nodeDefinition)
        {
            if (_current != null)
            {
                nodeDefinition.DependsOn.Add(_current.Name);
            }

            _current = nodeDefinition;

            _nodeDefinitionProvider.SetRoot(nodeDefinition.Name);
            return(nodeDefinition);
        }