public void CreatePropertySetter() { Action<object, object> setter = ExpressionReflectionDelegateFactory.Instance.CreateSet<object>(typeof(Movie).GetProperty("Name")); Movie m = new Movie(); setter(m, "OH HAI!"); Assert.AreEqual("OH HAI!", m.Name); }
public void CreateSetWithBadObjectTarget() { Person p = new Person(); Movie m = new Movie(); Action<object, object> setter = DynamicReflectionDelegateFactory.Instance.CreateSet<object>(typeof(Movie).GetProperty("Name")); setter(m, "Hi"); Assert.AreEqual(m.Name, "Hi"); setter(p, "Hi"); }
public void CreateSetWithBadObjectTarget() { ExceptionAssert.Throws<InvalidCastException>("Unable to cast object of type 'Newtonsoft.Json.Tests.TestObjects.Person' to type 'Newtonsoft.Json.Tests.TestObjects.Movie'.", () => { Person p = new Person(); Movie m = new Movie(); Action<object, object> setter = DynamicReflectionDelegateFactory.Instance.CreateSet<object>(typeof(Movie).GetProperty("Name")); setter(m, "Hi"); Assert.AreEqual(m.Name, "Hi"); setter(p, "Hi"); }); }
public void NullValueHandlingBlogPost() { Movie movie = new Movie(); movie.Name = "Bad Boys III"; movie.Description = "It's no Bad Boys"; string included = JsonConvert.SerializeObject(movie, Formatting.Indented, new JsonSerializerSettings { }); // { // "Name": "Bad Boys III", // "Description": "It's no Bad Boys", // "Classification": null, // "Studio": null, // "ReleaseDate": null, // "ReleaseCountries": null // } string ignored = JsonConvert.SerializeObject(movie, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); // { // "Name": "Bad Boys III", // "Description": "It's no Bad Boys" // } Assert.AreEqual(@"{ ""Name"": ""Bad Boys III"", ""Description"": ""It's no Bad Boys"", ""Classification"": null, ""Studio"": null, ""ReleaseDate"": null, ""ReleaseCountries"": null }", included); Assert.AreEqual(@"{ ""Name"": ""Bad Boys III"", ""Description"": ""It's no Bad Boys"" }", ignored); }
public void CreateSetWithBadObjectValue() { ExceptionAssert.Throws<InvalidCastException>("Unable to cast object of type 'System.Version' to type 'System.String'.", () => { Movie m = new Movie(); Action<object, object> setter = DynamicReflectionDelegateFactory.Instance.CreateSet<object>(typeof(Movie).GetProperty("Name")); setter(m, new Version("1.1.1.1")); }); }
public void CreateSetWithBadObjectValue() { Movie m = new Movie(); Action<object, object> setter = DynamicReflectionDelegateFactory.Instance.CreateSet<object>(typeof(Movie).GetProperty("Name")); setter(m, new Version()); }
public void CreateSetWithBadObjectValue() { ExceptionAssert.Throws<InvalidCastException>( () => { Movie m = new Movie(); Action<object, object> setter = ExpressionReflectionDelegateFactory.Instance.CreateSet<object>(typeof(Movie).GetProperty("Name")); setter(m, new Version("1.1.1.1")); }, new [] { "Unable to cast object of type 'System.Version' to type 'System.String'.", "Cannot cast from source type to destination type." //mono }); }
public void CreateSetWithBadObjectTarget() { ExceptionAssert.Throws<InvalidCastException>( () => { Person p = new Person(); Movie m = new Movie(); Action<object, object> setter = ExpressionReflectionDelegateFactory.Instance.CreateSet<object>(typeof(Movie).GetProperty("Name")); setter(m, "Hi"); Assert.AreEqual(m.Name, "Hi"); setter(p, "Hi"); Assert.AreEqual(p.Name, "Hi"); }, new [] { "Unable to cast object of type 'Newtonsoft.Json.Tests.TestObjects.Person' to type 'Newtonsoft.Json.Tests.TestObjects.Movie'.", "Cannot cast from source type to destination type." // mono }); }
public void CreateMethodCall() { MethodCall<object, object> method = ExpressionReflectionDelegateFactory.Instance.CreateMethodCall<object>(typeof(Movie).GetMethod("ToString")); Movie m = new Movie(); object result = method(m); Assert.AreEqual("Newtonsoft.Json.Tests.TestObjects.Movie", result); method = ExpressionReflectionDelegateFactory.Instance.CreateMethodCall<object>(typeof(Movie).GetMethod("Equals")); result = method(m, m); Assert.AreEqual(true, result); }
public void CreatePropertyGetter() { Func<object, object> getter = ExpressionReflectionDelegateFactory.Instance.CreateGet<object>(typeof(Movie).GetProperty("Name")); Movie m = new Movie(); m.Name = "OH HAI!"; object value = getter(m); Assert.AreEqual("OH HAI!", value); }