using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Capnp.Net.Runtime.Tests { [TestClass] [TestCategory("Coverage")] public class MessageBuilderTests { class Struct2D0P : SerializerState { public Struct2D0P() { SetStruct(2, 0); } } class Struct0D1P : SerializerState { public Struct0D1P() { SetStruct(0, 1); } } [TestMethod] public void BuildDynamicMessage() { var mb = MessageBuilder.Create(128); Assert.IsNull(mb.Root); var root = mb.BuildRoot(); Assert.IsNotNull(root); Assert.AreSame(root, mb.Root); root.WriteData(0, long.MinValue); root.WriteData(64, long.MaxValue); var frame = mb.Frame; var droot = DeserializerState.CreateRoot(frame); Assert.AreEqual(ObjectKind.Struct, droot.Kind); Assert.AreEqual(2, droot.StructDataCount); Assert.AreEqual(long.MinValue, droot.ReadDataLong(0)); Assert.AreEqual(long.MaxValue, droot.ReadDataLong(64)); } [TestMethod] public void SmallSegments() { WireFrame frame; for (int i = 1; i <= 8; i++) { { var mb = MessageBuilder.Create(128); var root = mb.BuildRoot(); var p = root.BuildPointer(0); p.SetListOfValues(64, i); frame = mb.Frame; } { var root = DeserializerState.CreateRoot(frame); Assert.AreEqual(i, root.StructReadPointer(0).ListElementCount); } } } } }