예제 #1
0
        public void Read_WithRepeatedTest1ShouldHaveCorrectNumberOfItems()
        {
            var message = new WithRepeatedTest1();
            message.Data.Add(new Test1() { A = 42 });
            message.Data.Add(new Test1() { A = 0xbeef });

            var expected = MessageWriter.Write(message);

            Assert.AreEqual(2,
                MessageReader.Read<WithRepeatedTest1>(expected).Data.Count);
        }
예제 #2
0
        public void WriteMessage_WithRepeatedTest1()
        {
            var message = new WithRepeatedTest1();
            message.Data.Add(new Test1() { A = 42 });
            message.Data.Add(new Test1() { A = 0xbeef });

            var expected = new MemoryStream();
            var writer = new MessageWriter(expected);
            var embedded = new MemoryStream();
            var embeddedWriter = new MessageWriter(embedded);

            Serializer.Serialize(embeddedWriter, message.Data[0]);
            writer.WriteHeader(2, WireType.String);
            writer.WriteBytes(embedded.ToArray());

            embedded.SetLength(0);
            Serializer.Serialize(embeddedWriter, message.Data[1]);
            writer.WriteHeader(2, WireType.String);
            writer.WriteBytes(embedded.ToArray());
            Assert.AreEqual(expected.ToArray(), MessageWriter.Write(message));
        }