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); } }
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); }
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); }
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]); } }