public void ParseTermInChild() { var x = new Vocabulary(); x.AddTermHandler("child", (s, o) => { var subject = (LocalType)s.Subject; subject.Child = new LocalChildType(); return(new Context { Subject = subject.Child }); }); x.AddTermHandler <LocalChildType, string>("Ick", (s, o) => { s.Ick = o; }); x.AddTermHandler <LocalChildType, string>("Ock", (s, o) => { s.Ock = o; }); var doc = new JObject(new JProperty("foo", "bar"), new JProperty("child", new JObject(new JProperty("Ick", "much"), new JProperty("Ock", "wow")))); var parser = new JsonStreamingParser(); var localObject = new LocalType(); JsonStreamingParser.ParseStream(doc.ToMemoryStream(), localObject, x); Assert.Equal("much", localObject.Child.Ick); Assert.Equal("wow", localObject.Child.Ock); }
public void ParseTerm() { var x = new Vocabulary(); x.AddTermHandler <LocalType, string>("foo", (s, o) => { s.Foo = o; }); x.AddTermHandler <LocalType, int>("baz", (s, o) => { s.Baz = o; }); var doc = new JObject(new JProperty("foo", "bar"), new JProperty("baz", 22)); var parser = new JsonStreamingParser(); var localObject = new LocalType(); JsonStreamingParser.ParseStream(doc.ToMemoryStream(), localObject, x); Assert.Equal("bar", localObject.Foo); Assert.Equal(22, localObject.Baz); }