示例#1
0
            public IListNode Build()
            {
                IListNode node = Substitute.For <IListNode>();

                node.ChildNode.Returns(ChildNode);

                node.CreateList().Returns(new List <T>());

                node.GetListCount(Arg.Any <IList <T> >()).Returns(args =>
                {
                    IList <T> list = (IList <T>)args[0];

                    return(list.Count);
                });

                node.GetListEntry(Arg.Any <IList <T> >(), Arg.Any <int>()).Returns(args =>
                {
                    IList <T> list = (IList <T>)args[0];
                    int index      = (int)args[1];

                    return(list[index]);
                });

                SetupAddEntry(node);

                return(node);
            }
示例#2
0
        private void ProcessListNode(IBinaryWriter binaryWriter, IListNode node, object list)
        {
            uint offsetPosition = node.Write(binaryWriter, list);
            int  count          = node.GetListCount(list);

            if (count == 0)
            {
                Enqueue(node.ChildNode, null, offsetPosition);
                return;
            }

            Enqueue(node.ChildNode, node.GetListEntry(list, 0), offsetPosition);

            for (int n = 1; n < count; ++n)
            {
                Enqueue(node.ChildNode, node.GetListEntry(list, n));
            }
        }