public void UnresolvedSubtypeMemberDeserializationYieldsNull() { var serializer = new BinarySerialization.BinarySerializer(); var ingredients = serializer.Deserialize <Ingredients>(new byte[] { 0x4 }); Assert.AreEqual(null, ingredients.MainIngredient); }
public void Roundtrip() { Cereal cereal = Cerealize(); using (var stream = new MemoryStream()) { _serializer.Serialize(stream, cereal); stream.Position = 0; Assert.AreEqual(BinarySerialization.Endianness.Big, _serializer.Endianness); //File.WriteAllBytes("c:\\temp\\out.bin", stream.ToArray()); var cereal2 = _serializer.Deserialize <Cereal>(stream); Assert.AreEqual("Cheeri", cereal2.Name); Assert.AreEqual(cereal.Manufacturer, cereal2.Manufacturer); Assert.AreEqual(cereal.NutritionalInformation.Fat, cereal2.NutritionalInformation.Fat); Assert.AreEqual(cereal.NutritionalInformation.Calories, cereal2.NutritionalInformation.Calories); Assert.AreEqual(cereal.NutritionalInformation.VitaminA, cereal2.NutritionalInformation.VitaminA); Assert.AreEqual(cereal.NutritionalInformation.VitaminB, cereal2.NutritionalInformation.VitaminB); Assert.IsTrue(cereal.NutritionalInformation.OtherNestedStuff.SequenceEqual( cereal2.NutritionalInformation.OtherNestedStuff)); Assert.IsTrue(cereal.NutritionalInformation.OtherNestedStuff2.SequenceEqual( cereal2.NutritionalInformation.OtherNestedStuff2)); Assert.IsTrue(cereal.NutritionalInformation.Toys.SequenceEqual(cereal2.NutritionalInformation.Toys)); Assert.IsInstanceOfType(cereal.NutritionalInformation.Ingredients.MainIngredient, typeof(Iron)); Assert.AreEqual(cereal2.DoubleField, cereal2.DoubleField); Assert.IsTrue(cereal2.OtherStuff.Contains("app")); Assert.IsTrue(cereal2.OtherStuff.Contains("pea")); Assert.IsTrue(cereal2.OtherStuff.Contains("ban")); Assert.AreEqual(3, cereal2.OtherStuff.Count); Assert.AreEqual(cereal2.OtherStuff.Count, cereal2.OtherStuffCount); Assert.AreEqual(CerealShape.Circular, cereal2.Shape); Assert.AreEqual(CerealShape.Square, cereal2.DefinitelyNotTheShape); Assert.IsNull(cereal2.DontSerializeMe); Assert.AreEqual(cereal.SerializeMe, cereal2.SerializeMe); Assert.AreEqual(3, cereal2.ArrayOfInts.Length); Assert.AreEqual(1, cereal2.ArrayOfInts[0]); Assert.AreEqual(2, cereal2.ArrayOfInts[1]); Assert.AreEqual(3, cereal2.ArrayOfInts[2]); Assert.AreEqual(cereal.NutritionalInformation.WeirdOutlierLengthedField.Length / 2.0, cereal2.Outlier); Assert.IsTrue(cereal.ExplicitlyTerminatedList.SequenceEqual(cereal2.ExplicitlyTerminatedList)); Assert.IsTrue(cereal.ImplicitlyTerminatedList.SequenceEqual(cereal2.ImplicitlyTerminatedList)); //string weirdOutlierLengthedField = cereal.NutritionalInformation.WeirdOutlierLengthedField; //Assert.AreEqual(weirdOutlierLengthedField.Substring(0, (int)cereal.Outlier*2), // cereal2.NutritionalInformation.WeirdOutlierLengthedField); var reader = new StreamReader(cereal2.Disclaimer); Assert.AreEqual(Disclaimer, reader.ReadToEnd()); } }
public void ImplicitTermination() { var data = new byte[] { 0x0, 0x1, 0x2, 0x3 }; var serializer = new BinarySerialization.BinarySerializer(); var byteList = serializer.Deserialize <ImplictTermination>(data); Assert.AreEqual(4, byteList.Data.Count); }