コード例 #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
ファイル: ListNodeTests.cs プロジェクト: Vraiment/SAGESharp
        public void Test_Creating_A_List_Instance()
        {
            IListNode listNode = BuildStringListNode();

            object result = listNode.CreateList();

            result.Should()
            .BeOfType <List <string> >()
            .Which
            .Should()
            .HaveCount(0);
        }
コード例 #3
0
ファイル: TreeReader.cs プロジェクト: Vraiment/SAGESharp
        private object ProcessListNode(IBinaryReader binaryReader, IListNode listNode)
        {
            int    count  = listNode.ReadEntryCount(binaryReader);
            uint   offset = listNode.ReadOffset(binaryReader);
            object list   = listNode.CreateList();

            if (count != 0)
            {
                binaryReader.DoAtPosition(offset, () =>
                {
                    for (int n = 0; n < count; ++n)
                    {
                        object entry = ProcessDataNode(binaryReader, listNode.ChildNode);
                        listNode.AddListEntry(list, entry);
                    }
                });
            }

            return(list);
        }