public void SerializeUnpackedSerializePacked() { EntityWithUnpackedInts item = new EntityWithUnpackedInts { Items = { 1, 2, 3, 4, 5, 1000 } }; EntityWithPackedInts clone = Serializer.ChangeType <EntityWithUnpackedInts, EntityWithPackedInts>(item); Assert.AreNotSame(item.Items, clone.List); Assert.IsTrue(item.Items.SequenceEqual(clone.List)); }
public void SerializePackedDeserializeUnpacked() { EntityWithPackedInts item = new EntityWithPackedInts { List = { 1, 2, 3, 4, 5, 1000 } }; EntityWithUnpackedInts clone = Serializer.ChangeType <EntityWithPackedInts, EntityWithUnpackedInts>(item); Assert.NotSame(item.List, clone.Items); Assert.True(item.List.SequenceEqual(clone.Items)); }
public void SerializeUnpackedSerializePacked() { EntityWithUnpackedInts item = new EntityWithUnpackedInts { Items = { 1, 2, 3, 4, 5, 1000 } }; var tm = TypeModel.Create(false, ProtoCompatibilitySettingsValue.FullCompatibility); EntityWithPackedInts clone = tm.ChangeType <EntityWithUnpackedInts, EntityWithPackedInts>(item); Assert.AreNotSame(item.Items, clone.List); Assert.IsTrue(item.Items.SequenceEqual(clone.List)); }
public void TestUnpackedIntListLayout() { EntityWithUnpackedInts item = new EntityWithUnpackedInts { Items = { 1, 2, 3, 4, 5, 1000 } }; Assert.IsTrue(Program.CheckBytes(item, 08, 01, 08, 02, 08, 03, 08, 04, 08, 05, 08, 0xE8, 07)); var clone = Serializer.DeepClone(item); Assert.AreNotSame(item.Items, clone.Items); Assert.IsTrue(item.Items.SequenceEqual(clone.Items)); }
public void TestUnpackedIntArrayLayout() { EntityWithUnpackedInts item = new EntityWithUnpackedInts { ItemArray = new int[] { 1, 2, 3, 4, 5, 1000 } }; Assert.True(Program.CheckBytes(item, 0x18, 01, 0x18, 02, 0x18, 03, 0x18, 04, 0x18, 05, 0x18, 0xE8, 07)); var clone = Serializer.DeepClone(item); Assert.NotSame(item.ItemArray, clone.ItemArray); Assert.True(item.ItemArray.SequenceEqual(clone.ItemArray)); }
public void TestUnpackedIntCustomLayout() { EntityWithUnpackedInts item = new EntityWithUnpackedInts { Custom = new CustomEnumerable { 1, 2, 3, 4, 5, 1000 } }; Assert.IsTrue(Program.CheckBytes(item, 0x20, 01, 0x20, 02, 0x20, 03, 0x20, 04, 0x20, 05, 0x20, 0xE8, 07)); var clone = Serializer.DeepClone(item); Assert.AreNotSame(item.Custom, clone.Custom); Assert.IsTrue(item.Custom.SequenceEqual(clone.Custom)); }
public void UnpackedNullOrEmptyCustomDeserializesAsNull() { var item = new EntityWithUnpackedInts(); Assert.IsNull(item.Custom); var clone = Serializer.DeepClone(item); Assert.IsNull(clone.Custom); item.Custom = new CustomEnumerable(); clone = Serializer.DeepClone(item); Assert.IsNull(clone.Custom); item.Custom.Add(123); clone = Serializer.DeepClone(item); Assert.IsNotNull(clone.Custom); Assert.AreEqual(123, item.Custom.Single()); }
public void UnpackedNullOrEmptyListDeserializesAsNull() { var item = new EntityWithUnpackedInts(); Assert.IsNull(item.ItemsNoDefault); var clone = Serializer.DeepClone(item); Assert.IsNull(clone.ItemsNoDefault); item.ItemsNoDefault = new List <int>(); clone = Serializer.DeepClone(item); Assert.IsNull(clone.ItemsNoDefault); item.ItemsNoDefault.Add(123); clone = Serializer.DeepClone(item); Assert.IsNotNull(clone.ItemsNoDefault); Assert.AreEqual(1, clone.ItemsNoDefault.Count); Assert.AreEqual(123, clone.ItemsNoDefault[0]); }
public void UnpackedNullOrEmptyArrayDeserializesAsNull() { var item = new EntityWithUnpackedInts(); Assert.IsNull(item.ItemArray); var clone = Serializer.DeepClone(item); Assert.IsNull(clone.ItemArray); item.ItemArray = new int[0]; clone = Serializer.DeepClone(item); Assert.IsNull(clone.ItemArray); item.ItemArray = new int[1] { 123 }; clone = Serializer.DeepClone(item); Assert.IsNotNull(clone.ItemArray); Assert.AreEqual(1, clone.ItemArray.Length); Assert.AreEqual(123, clone.ItemArray[0]); }