예제 #1
0
        public void Test_Writing_An_Object_To_A_BinaryWriter()
        {
            string expected = nameof(expected);

            paddingNode.Write(binaryWriter, expected);

            Received.InOrder(() =>
            {
                childNode.Write(binaryWriter, expected);
                binaryWriter.WriteBytes(Matcher.ForEquivalentArray(new byte[PADDING_SIZE]));
            });
        }
예제 #2
0
 private void VerifyWriteTreeWithHeight1(IDataNode node, TreeWithHeight1.Class value)
 {
     node.Write(binaryWriter, value);
     (node.Edges[0].ChildNode as IDataNode).Write(binaryWriter, value.Int);
     (node.Edges[1].ChildNode as IDataNode).Write(binaryWriter, value.Float);
     (node.Edges[2].ChildNode as IDataNode).Write(binaryWriter, value.Byte);
 }
예제 #3
0
        private void VerifyWriteTreeWithNestedLists(
            IDataNode node,
            TreeWithNestedLists.Class value,
            uint originalPosition1,
            uint originalPosition2,
            uint offsetPosition1,
            uint offsetPosition2
            )
        {
            node.Write(binaryWriter, value);

            IListNode listNode1 = node.Edges[0].ChildNode as IListNode;

            listNode1.Write(binaryWriter, value.List1);

            IListNode listNode2 = node.Edges[1].ChildNode as IListNode;

            listNode2.Write(binaryWriter, value.List2);

            VerifyBinaryWriterWritesOffset(originalPosition1, offsetPosition1);
            foreach (var entry in value.List1)
            {
                VerifyWriteTreeWithHeight1(listNode1.ChildNode, entry);
            }

            VerifyBinaryWriterWritesOffset(originalPosition2, offsetPosition2);
            foreach (var entry in value.List2)
            {
                VerifyWriteTreeWithHeight2(listNode2.ChildNode, entry);
            }
        }
예제 #4
0
        private void VerifyWriteTreeWithNodeAtOffset(IDataNode node, TreeWithNodeAtOffset.Class value, uint originalPosition, uint offsetPosition)
        {
            node.Write(binaryWriter, value);

            (node.Edges[0].ChildNode as IOffsetNode).Write(binaryWriter, value.ValueAtOffset);
            (node.Edges[1].ChildNode as IDataNode).Write(binaryWriter, value.ValueInline);

            VerifyBinaryWriterWritesOffset(originalPosition, offsetPosition);
            (node.Edges[0].ChildNode as IOffsetNode).ChildNode.Write(binaryWriter, value.ValueAtOffset);
        }
예제 #5
0
        private void ProcessDataNode(IBinaryWriter binaryWriter, IDataNode node, object value)
        {
            node.Write(binaryWriter, value);

            foreach (IEdge edge in node.Edges)
            {
                object childValue = edge.ExtractChildValue(value);
                ProcessNode(binaryWriter, edge.ChildNode, childValue);
            }
        }
예제 #6
0
 private void VerifyWriteTreeWithHeight3(IDataNode node, TreeWithHeight3.Class value)
 {
     node.Write(binaryWriter, value);
     VerifyWriteTreeWithHeight2(node.Edges[0].ChildNode as IDataNode, value.Child1);
     VerifyWriteTreeWithHeight2(node.Edges[1].ChildNode as IDataNode, value.Child2);
 }
예제 #7
0
 private void VerifyWriteTreeWithHeight2(IDataNode node, TreeWithHeight2.Class value)
 {
     node.Write(binaryWriter, value);
     (node.Edges[0].ChildNode as IDataNode).Write(binaryWriter, value.Long);
     VerifyWriteTreeWithHeight1(node.Edges[1].ChildNode as IDataNode, value.Child);
 }