示例#1
0
        public void ShouldSerializeValue()
        {
            PropertyInfo valueInfo = typeof(Item).GetProperty("Entries");
            ReflectorProperty <Item, Entry[]> valueProperty = new ReflectorProperty <Item, Entry[]>(valueInfo);

            PropertyInfo nestedInfo = typeof(Entry).GetProperty("Value");
            ReflectorProperty <Entry, String> nestedProperty = new ReflectorProperty <Entry, string>(nestedInfo);

            Member <Entry>     nestedMember = new MemberString <Entry>(nestedProperty);
            Serializer <Entry> nested       = new Serializer <Entry>(nestedMember);

            Member <Item> member = new MemberArray <Item, Entry>(valueProperty, nested);
            Item          item   = new Item {
                Entries = new[] { new Entry {
                                      Value = "abc"
                                  }, new Entry {
                                      Value = "cde"
                                  } }
            };

            MemoryMock memory = new MemoryMock(30);

            Assert.That(member.Transfer(item, memory, 0), Is.EqualTo(22));
            Assert.That(memory.GetData(22), Is.EqualTo(new[]
            {
                0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02,
                0x00, 0x00, 0x00, 0x03, 0x61, 0x62, 0x63,
                0x00, 0x00, 0x00, 0x03, 0x63, 0x64, 0x65
            }));
        }
示例#2
0
        public void ShouldDeserializeNullToInstance()
        {
            PropertyInfo info = typeof(Item).GetProperty("Value");
            ReflectorProperty <Item, String> property = new ReflectorProperty <Item, String>(info);

            Member <Item> member = new MemberString <Item>(property);
            MemoryMock    memory = new MemoryMock(new byte[] { 0xff, 0xff, 0xff, 0xff });
            Item          item   = new Item {
                Value = "abc"
            };

            Assert.That(member.Transfer(memory, 0, item), Is.EqualTo(4));
            Assert.That(item.Value, Is.Null);
        }
示例#3
0
        public void ShouldSerializeNull()
        {
            PropertyInfo info = typeof(Item).GetProperty("Value");
            ReflectorProperty <Item, String> property = new ReflectorProperty <Item, String>(info);

            Member <Item> member = new MemberString <Item>(property);
            Item          item   = new Item {
                Value = null
            };
            MemoryMock memory = new MemoryMock(20);

            Assert.That(member.Transfer(item, memory, 0), Is.EqualTo(4));
            Assert.That(memory.GetData(4), Is.EqualTo(new[] { 0xff, 0xff, 0xff, 0xff }));
        }
示例#4
0
        public void ShouldDeserializeNullToSubstitute()
        {
            PropertyInfo info = typeof(Item).GetProperty("Value");
            ReflectorProperty <Item, String> property = new ReflectorProperty <Item, String>(info);

            Member <Item> member = new MemberString <Item>(property);
            MemoryMock    memory = new MemoryMock(new byte[] { 0xff, 0xff, 0xff, 0xff });

            Serializer <Item> serializer = new Serializer <Item>(member);
            Substitute <Item> item       = new Substitute <Item>(serializer, memory);

            Assert.That(member.Transfer(memory, 0, item), Is.EqualTo(4));
            Assert.That(item.AsDynamic().Value, Is.Null);
        }
示例#5
0
        public void ShouldDeserializeValueToInstance()
        {
            PropertyInfo info = typeof(Item).GetProperty("Value");
            ReflectorProperty <Item, String> property = new ReflectorProperty <Item, String>(info);

            Item          item   = new Item();
            Member <Item> member = new MemberString <Item>(property);

            MemoryMock memory = new MemoryMock(new byte[]
            {
                0x00, 0x00, 0x00, 0x03, 0x61, 0x62, 0x63
            });

            Assert.That(member.Transfer(memory, 0, item), Is.EqualTo(7));
            Assert.That(item.Value, Is.EqualTo("abc"));
        }
示例#6
0
        public void ShouldSerializeValue()
        {
            PropertyInfo info = typeof(Item).GetProperty("Value");
            ReflectorProperty <Item, String> property = new ReflectorProperty <Item, String>(info);

            Member <Item> member = new MemberString <Item>(property);
            Item          item   = new Item {
                Value = "abc"
            };
            MemoryMock memory = new MemoryMock(20);

            Assert.That(member.Transfer(item, memory, 0), Is.EqualTo(7));
            Assert.That(memory.GetData(7), Is.EqualTo(new[]
            {
                0x00, 0x00, 0x00, 0x03, 0x61, 0x62, 0x63
            }));
        }
示例#7
0
        public void ShouldDeserializeOnlySize()
        {
            PropertyInfo info = typeof(Item).GetProperty("Value");
            ReflectorProperty <Item, String> property = new ReflectorProperty <Item, String>(info);

            Member <Item>     member     = new MemberString <Item>(property);
            Serializer <Item> serializer = new Serializer <Item>(member);

            MemoryMock memory = new MemoryMock(new byte[]
            {
                0x00, 0x00, 0x00, 0x03, 0x61, 0x62, 0x63
            });

            Substitute <Item> item = new Substitute <Item>(serializer, memory);

            Assert.That(member.Transfer(memory, 0, item), Is.EqualTo(7));
            Assert.That(memory.Accessed, Is.EqualTo(new[] { 0, 1, 2, 3 }));
        }
示例#8
0
        public void ShouldSerializeNull()
        {
            PropertyInfo valueInfo = typeof(Item).GetProperty("Entries");
            ReflectorProperty <Item, Entry[]> valueProperty = new ReflectorProperty <Item, Entry[]>(valueInfo);

            PropertyInfo nestedInfo = typeof(Entry).GetProperty("Value");
            ReflectorProperty <Entry, String> nestedProperty = new ReflectorProperty <Entry, string>(nestedInfo);

            Member <Entry>     nestedMember = new MemberString <Entry>(nestedProperty);
            Serializer <Entry> nested       = new Serializer <Entry>(nestedMember);

            Member <Item> member = new MemberArray <Item, Entry>(valueProperty, nested);
            Item          item   = new Item {
                Entries = null
            };

            MemoryMock memory = new MemoryMock(20);

            Assert.That(member.Transfer(item, memory, 0), Is.EqualTo(8));
            Assert.That(memory.GetData(8), Is.EqualTo(new[]
            {
                0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff
            }));
        }
示例#9
0
        public void ShouldAccessOnlyArraySize()
        {
            PropertyInfo valueInfo = typeof(Item).GetProperty("Entries");
            ReflectorProperty <Item, Entry[]> valueProperty = new ReflectorProperty <Item, Entry[]>(valueInfo);

            PropertyInfo nestedInfo = typeof(Entry).GetProperty("Value");
            ReflectorProperty <Entry, String> nestedProperty = new ReflectorProperty <Entry, string>(nestedInfo);

            Member <Entry>     nestedMember = new MemberString <Entry>(nestedProperty);
            Serializer <Entry> nested       = new Serializer <Entry>(nestedMember);

            Member <Item>     member     = new MemberArray <Item, Entry>(valueProperty, nested);
            Serializer <Item> serializer = new Serializer <Item>(member);

            MemoryMock memory = new MemoryMock(new byte[]
            {
                0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff
            });

            Substitute <Item> item = new Substitute <Item>(serializer, memory);

            Assert.That(member.Transfer(memory, 0, item), Is.EqualTo(8));
            Assert.That(memory.Accessed, Is.EqualTo(new[] { 0, 1, 2, 3 }));
        }
示例#10
0
        public void ShouldDeserializeNullToInstance()
        {
            PropertyInfo valueInfo = typeof(Item).GetProperty("Entries");
            ReflectorProperty <Item, Entry[]> valueProperty = new ReflectorProperty <Item, Entry[]>(valueInfo);

            PropertyInfo nestedInfo = typeof(Entry).GetProperty("Value");
            ReflectorProperty <Entry, String> nestedProperty = new ReflectorProperty <Entry, string>(nestedInfo);

            Member <Entry>     nestedMember = new MemberString <Entry>(nestedProperty);
            Serializer <Entry> nested       = new Serializer <Entry>(nestedMember);

            Item item = new Item {
                Entries = new Entry[0]
            };
            Member <Item> member = new MemberArray <Item, Entry>(valueProperty, nested);

            MemoryMock memory = new MemoryMock(new byte[]
            {
                0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff
            });

            Assert.That(member.Transfer(memory, 0, item), Is.EqualTo(8));
            Assert.That(item.Entries, Is.Null);
        }