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); }
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)); } }
public void Test_Getting_The_Entries_From_A_Non_Empty_List() { IList <string> list = BuildStringList(); IListNode listNode = BuildStringListNode(); for (int n = 0; n < list.Count; n++) { listNode.GetListEntry(list, n) .Should() .BeSameAs(list[n]); } }