示例#1
0
        public void ViewManagersPropCache_ViewManager_Set()
        {
            var instance = new ViewManagerValueTest();

            var setters = ViewManagersPropCache.GetNativePropSettersForViewManagerType <object>(typeof(ViewManagerValueTest));

            Assert.AreEqual(3, setters.Count);

            var props = new JObject
            {
                { "Foo", "v1" },
                { "Bar1", "v2" },
                { "Bar2", "v3" },
            };

            AssertEx.Throws <NotSupportedException>(() => setters["Foo"].UpdateShadowNodeProp(new ShadowNodeValueTest(), props));
            AssertEx.Throws <ArgumentNullException>(
                () => setters["Foo"].UpdateViewManagerProp(null, null, props),
                ex => Assert.AreEqual("viewManager", ex.ParamName));
            AssertEx.Throws <ArgumentNullException>(
                () => setters["Foo"].UpdateViewManagerProp(instance, null, null),
                ex => Assert.AreEqual("props", ex.ParamName));

            setters["Foo"].UpdateViewManagerProp(instance, null, props);
            setters["Bar1"].UpdateViewManagerProp(instance, null, props);
            setters["Bar2"].UpdateViewManagerProp(instance, null, props);

            Assert.AreEqual("v1", instance.FooValue);
            Assert.AreEqual("v2", instance.BarValues[0]);
            Assert.AreEqual("v3", instance.BarValues[1]);
        }
示例#2
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));
        }
示例#3
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]);
        }