public void ViewManagersPropertyCache_Defaults() { var instance = new DefaultsTest(); var setters = ViewManagersPropertyCache.GetNativePropertySettersForViewManagerType(typeof(DefaultsTest)); var props = new ReactStylesDiffMap(new JObject()); instance.ByteValue = byte.MaxValue; instance.SByteValue = sbyte.MaxValue; instance.Int16Value = short.MaxValue; instance.UInt16Value = ushort.MaxValue; instance.Int32Value = int.MaxValue; instance.UInt32Value = uint.MaxValue; instance.Int64Value = long.MaxValue; instance.UInt64Value = ulong.MaxValue; instance.SingleValue = float.MaxValue; instance.DoubleValue = double.MaxValue; instance.DecimalValue = decimal.MaxValue; instance.BooleanValue = true; instance.StringValue = "foo"; instance.ArrayValue = new int[0]; instance.MapValue = new object(); instance.NullableValue = true; instance.GroupValue = new[] { "a", "b", "c" }; setters["TestByte"].UpdateViewManagerProperty(instance, null, props); setters["TestSByte"].UpdateViewManagerProperty(instance, null, props); setters["TestInt16"].UpdateViewManagerProperty(instance, null, props); setters["TestUInt16"].UpdateViewManagerProperty(instance, null, props); setters["TestInt32"].UpdateViewManagerProperty(instance, null, props); setters["TestUInt32"].UpdateViewManagerProperty(instance, null, props); setters["TestInt64"].UpdateViewManagerProperty(instance, null, props); setters["TestUInt64"].UpdateViewManagerProperty(instance, null, props); setters["TestSingle"].UpdateViewManagerProperty(instance, null, props); setters["TestDouble"].UpdateViewManagerProperty(instance, null, props); setters["TestDecimal"].UpdateViewManagerProperty(instance, null, props); setters["TestBoolean"].UpdateViewManagerProperty(instance, null, props); setters["TestString"].UpdateViewManagerProperty(instance, null, props); setters["TestArray"].UpdateViewManagerProperty(instance, null, props); setters["TestMap"].UpdateViewManagerProperty(instance, null, props); setters["TestNullable"].UpdateViewManagerProperty(instance, null, props); setters["foo"].UpdateViewManagerProperty(instance, null, props); setters["bar"].UpdateViewManagerProperty(instance, null, props); setters["baz"].UpdateViewManagerProperty(instance, null, props); Assert.AreEqual(0, instance.ByteValue); Assert.AreEqual(0, instance.SByteValue); Assert.AreEqual(0, instance.Int16Value); Assert.AreEqual(0, instance.UInt16Value); Assert.AreEqual(0, instance.Int32Value); Assert.AreEqual((uint)0, instance.UInt32Value); Assert.AreEqual(0, instance.Int64Value); Assert.AreEqual((ulong)0, instance.UInt64Value); Assert.AreEqual(0, instance.SingleValue); Assert.AreEqual(0, instance.DoubleValue); Assert.AreEqual(0, instance.DecimalValue); Assert.IsFalse(instance.BooleanValue); Assert.IsNull(instance.StringValue); Assert.IsNull(instance.ArrayValue); Assert.IsNull(instance.MapValue); Assert.IsFalse(instance.NullableValue.HasValue); Assert.IsNull(instance.GroupValue[0]); Assert.IsNull(instance.GroupValue[1]); Assert.IsNull(instance.GroupValue[2]); }