コード例 #1
0
 private void RoundTrip(AnimalMessage input, int numTrips, bool verify)
 {
     for (int i = 0; i < numTrips; i++)
     {
         byte[] buffer = input.ToMsgPack();
         if (verify)
         {
             VerifyAnimalMessage(input, MsgPackSerializer.Deserialize <AnimalMessage>(buffer));
         }
         Interlocked.Increment(ref numVerified);
     }
 }
コード例 #2
0
        public void TestAsMaps()
        {
            MsgPackSerializer.DefaultContext.SerializationMethod = SerializationMethod.Map;
            AnimalMessage msg = AnimalMessage.CreateTestMessage();

            byte[] payload = msg.ToMsgPack();
            Assert.IsNotNull(payload);
            Assert.AreNotEqual(0, payload.Length);
            AnimalMessage restored = MsgPackSerializer.Deserialize <AnimalMessage>(payload);

            VerifyAnimalMessage(msg, restored);
        }
コード例 #3
0
        public void TestCompat()
        {
            MsgPackSerializer.DefaultContext.SerializationMethod = SerializationMethod.Array;
            AnimalMessage msg = AnimalMessage.CreateTestMessage();

            byte[] payload          = msg.ToMsgPack();
            string msgFilename      = Path.Combine(Environment.CurrentDirectory, "animal.msg");
            string verifierFilename = Path.Combine(Environment.CurrentDirectory, "msgpack-sharp-verifier.exe");

            File.WriteAllBytes(msgFilename, payload);
            string args = verifierFilename + " " + msgFilename;

            Process.Start("mono", args);
            Assert.IsTrue(File.Exists(msgFilename + ".out"), "The verifier program that uses other people's msgpack libs failed to successfully handle our message while running [mono " + args + "]");
            payload = File.ReadAllBytes(msgFilename + ".out");
            AnimalMessage restored = MsgPackSerializer.Deserialize <AnimalMessage>(payload);

            VerifyAnimalMessage(msg, restored);
        }
コード例 #4
0
        private void TestLimit(int count)
        {
            var msg = new AnimalMessage();

            msg.SpotColors = new List <AnimalColor>();
            for (int i = 0; i < count; i++)
            {
                msg.SpotColors.Add(new AnimalColor()
                {
                    Red = 1.0f
                });
            }
            byte[] payload = msg.ToMsgPack();

            var restored = MsgPackSerializer.Deserialize <AnimalMessage>(payload);

            Assert.IsNotNull(restored.SpotColors);
            Assert.AreEqual(msg.SpotColors.Count, restored.SpotColors.Count);

            for (int i = 0; i < count; i++)
            {
                Assert.AreEqual(msg.SpotColors[i], restored.SpotColors[i]);
            }
        }