public void ViewManagersPropCache_ShadowNode_Set() { var instance = new ShadowNodeValueTest(); var setters = ViewManagersPropCache.GetNativePropSettersForShadowNodeType(typeof(ShadowNodeValueTest)); Assert.AreEqual(3, setters.Count); var props = new JObject { { "Foo", 42 }, { "Qux1", "v2" }, { "Qux2", "v3" }, }; AssertEx.Throws <NotSupportedException>(() => setters["Foo"].UpdateViewManagerProp(new ViewManagerValueTest(), null, props)); AssertEx.Throws <ArgumentNullException>( () => setters["Foo"].UpdateShadowNodeProp(null, props), ex => Assert.AreEqual("shadowNode", ex.ParamName)); AssertEx.Throws <ArgumentNullException>( () => setters["Foo"].UpdateShadowNodeProp(instance, null), ex => Assert.AreEqual("props", ex.ParamName)); setters["Foo"].UpdateShadowNodeProp(instance, props); setters["Qux1"].UpdateShadowNodeProp(instance, props); setters["Qux2"].UpdateShadowNodeProp(instance, props); Assert.AreEqual(42, instance.FooValue); Assert.AreEqual("v2", instance.QuxValues[0]); Assert.AreEqual("v3", instance.QuxValues[1]); }
public void ViewManagersPropCache_GetNativePropsForView() { var props = ViewManagersPropCache.GetNativePropsForView <object>(typeof(ViewManagerValueTest), typeof(ShadowNodeValueTest)); Assert.AreEqual(5, props.Count); Assert.AreEqual("number", props["Foo"].Value <string>()); Assert.AreEqual("String", props["Bar1"].Value <string>()); Assert.AreEqual("String", props["Bar2"].Value <string>()); Assert.AreEqual("String", props["Qux1"].Value <string>()); Assert.AreEqual("String", props["Qux2"].Value <string>()); }
public void ViewManagersPropCache_ArgumentChecks() { AssertEx.Throws <ArgumentNullException>( () => ViewManagersPropCache.GetNativePropsForView <object>(null, typeof(object)), ex => Assert.AreEqual("viewManagerType", ex.ParamName)); AssertEx.Throws <ArgumentNullException>( () => ViewManagersPropCache.GetNativePropsForView <object>(typeof(object), null), ex => Assert.AreEqual("shadowNodeType", ex.ParamName)); AssertEx.Throws <ArgumentNullException>( () => ViewManagersPropCache.GetNativePropSettersForViewManagerType <object>(null), ex => Assert.AreEqual("type", ex.ParamName)); AssertEx.Throws <ArgumentNullException>( () => ViewManagersPropCache.GetNativePropSettersForShadowNodeType (null), ex => Assert.AreEqual("type", ex.ParamName)); }
public void ViewManagersPropCache_ShadowNode_Empty() { var setters = ViewManagersPropCache.GetNativePropSettersForShadowNodeType(typeof(ReactShadowNode)); Assert.AreEqual(0, setters.Count); }
public void ViewManagersPropCache_Defaults() { var instance = new DefaultsTest(); var setters = ViewManagersPropCache.GetNativePropSettersForViewManagerType <object>(typeof(DefaultsTest)); var props = 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"].UpdateViewManagerProp(instance, null, props); setters["TestSByte"].UpdateViewManagerProp(instance, null, props); setters["TestInt16"].UpdateViewManagerProp(instance, null, props); setters["TestUInt16"].UpdateViewManagerProp(instance, null, props); setters["TestInt32"].UpdateViewManagerProp(instance, null, props); setters["TestUInt32"].UpdateViewManagerProp(instance, null, props); setters["TestInt64"].UpdateViewManagerProp(instance, null, props); setters["TestUInt64"].UpdateViewManagerProp(instance, null, props); setters["TestSingle"].UpdateViewManagerProp(instance, null, props); setters["TestDouble"].UpdateViewManagerProp(instance, null, props); setters["TestDecimal"].UpdateViewManagerProp(instance, null, props); setters["TestBoolean"].UpdateViewManagerProp(instance, null, props); setters["TestString"].UpdateViewManagerProp(instance, null, props); setters["TestArray"].UpdateViewManagerProp(instance, null, props); setters["TestMap"].UpdateViewManagerProp(instance, null, props); setters["TestNullable"].UpdateViewManagerProp(instance, null, props); setters["foo"].UpdateViewManagerProp(instance, null, props); setters["bar"].UpdateViewManagerProp(instance, null, props); setters["baz"].UpdateViewManagerProp(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]); }