public void Simple_Deserialize()
        {
            var surrogate = new SurrogateTypeDescriber(false);

            surrogate.AddSurrogateType(typeof(_Simple_Real).GetTypeInfo(), typeof(_Simple_Surrogate).GetTypeInfo());

            // maps!
            {
                var res = surrogate.EnumerateMembersToDeserialize(typeof(_Simple_Real).GetTypeInfo());

                Assert.Collection(
                    res,
                    a =>
                {
                    Assert.Null(a.Field);
                    Assert.Equal(DeserializableMember.GetDefaultParser(typeof(string).GetTypeInfo()), a.Parser);
                    Assert.Equal("bar", a.Name);
                    Assert.Equal(typeof(_Simple_Real).GetProperty(nameof(_Simple_Real.Foo)).SetMethod, a.Setter);
                    Assert.False(a.IsRequired);
                }
                    );
            }

            // doesn't map
            {
                var res = surrogate.EnumerateMembersToDeserialize(typeof(_Simple_Surrogate).GetTypeInfo());

                Assert.Collection(
                    res,
                    a =>
                {
                    Assert.Null(a.Field);
                    Assert.Equal(DeserializableMember.GetDefaultParser(typeof(string).GetTypeInfo()), a.Parser);
                    Assert.Equal("bar", a.Name);
                    Assert.Equal(typeof(_Simple_Surrogate).GetProperty(nameof(_Simple_Surrogate.Foo)).SetMethod, a.Setter);
                    Assert.False(a.IsRequired);
                }
                    );
            }
        }
Example #2
0
            public IEnumerable <DeserializableMember> EnumerateMembersToDeserialize(TypeInfo forType)
            {
                var foo = DeserializableMember.ForProperty(typeof(_BridgeDelegate).GetProperty(nameof(_BridgeDelegate.Foo)));

                return(new[] { foo });
            }