示例#1
0
        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]);
        }
示例#2
0
        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>());
        }
示例#3
0
        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));
        }
示例#4
0
        public void ViewManagersPropCache_ShadowNode_Empty()
        {
            var setters = ViewManagersPropCache.GetNativePropSettersForShadowNodeType(typeof(ReactShadowNode));

            Assert.AreEqual(0, setters.Count);
        }
示例#5
0
        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]);
        }