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); }
public void Test_Creating_A_List_Instance() { IListNode listNode = BuildStringListNode(); object result = listNode.CreateList(); result.Should() .BeOfType <List <string> >() .Which .Should() .HaveCount(0); }
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); }