Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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());
        }
Beispiel #8
0
        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]);
        }
Beispiel #9
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]);
        }