コード例 #1
0
        public override object GetNewPropValue(ExpectUpdate attr, object obj, PropertyInfo prop)
        {
            object newValue = null;

            var typedAttr = attr as ExpectUpdateAsIntRange;

            var minValue = typedAttr.MinValue;
            var maxValue = typedAttr.MaxValue;

            var tmpValue = minValue + RndService.Int(maxValue - minValue);

            if (prop.PropertyType == typeof(double?) ||
                prop.PropertyType == typeof(double))
            {
                newValue = Convert.ToDouble(tmpValue);
            }
            else if (prop.PropertyType == typeof(UInt16?) ||
                     prop.PropertyType == typeof(UInt16))
            {
                newValue = Convert.ToUInt16(tmpValue);
            }
            else
            {
                // TODO, as per case
                newValue = tmpValue;
            }

            return(newValue);
        }
コード例 #2
0
        public override object GetNewPropValue(ExpectUpdate attr, object obj, PropertyInfo prop)
        {
            object newValue = null;

            var newLocaleIdValue = 1033 + RndService.Int(5);

            if (prop.PropertyType == typeof(int))
            {
                newValue = newLocaleIdValue;
            }
            else if (prop.PropertyType == typeof(int?))
            {
                newValue = RndService.Bool() ? (int?)null : newLocaleIdValue;
            }
            else if (prop.PropertyType == typeof(uint))
            {
                newValue = (uint)newLocaleIdValue;
            }
            else if (prop.PropertyType == typeof(uint?))
            {
                newValue = (uint?)(RndService.Bool() ? (uint?)null : (uint?)newLocaleIdValue);
            }

            return(newValue);
        }
コード例 #3
0
        public override object GetNewPropValue(ExpectUpdate attr, object obj, PropertyInfo prop)
        {
            object newValue = null;

            newValue = string.Format("<View BaseViewID='{0}'/>", RndService.Int(100) + 1);

            return(newValue);
        }
コード例 #4
0
        public override object GetNewPropValue(ExpectUpdate attr, object obj, PropertyInfo prop)
        {
            object newValue = null;

            newValue = string.Format("=ID*{0}", RndService.Int(100));

            return(newValue);
        }
コード例 #5
0
        public override object GetNewPropValue(ExpectUpdate attr, object obj, PropertyInfo prop)
        {
            object newValue = null;

            var values = new List <string>();

            values.Add(BuiltInInternalFieldNames.ID);
            values.Add(BuiltInInternalFieldNames.Edit);
            values.Add(BuiltInInternalFieldNames.Created);
            values.Add(BuiltInInternalFieldNames._Author);

            if (prop.PropertyType == typeof(string))
            {
                newValue = values[RndService.Int(values.Count - 1)];
            }

            if (prop.PropertyType == typeof(Collection <string>))
            {
                newValue = RndService.RandomCollectionFromArray(values);
            }

            return(newValue);
        }
コード例 #6
0
        public override object GetNewPropValue(ExpectUpdate attr, object obj, PropertyInfo prop)
        {
            object newValue = null;

            if (prop.PropertyType == typeof(byte[]))
            {
                if (obj is WebPartGalleryFileDefinition && prop.Name == "Content")
                {
                    // change web part
                    var webPartXmlString = Encoding.UTF8.GetString(prop.GetValue(obj) as byte[]);
                    var webPartXml       = WebpartXmlExtensions.LoadWebpartXmlDocument(webPartXmlString);

                    webPartXml.SetTitleUrl(RndService.HttpUrl());

                    newValue = Encoding.UTF8.GetBytes(webPartXml.ToString());
                }
                else
                {
                    newValue = RndService.Content();
                }
            }
            else if (prop.PropertyType == typeof(string))
            {
                newValue = RndService.String();
            }
            else if (prop.PropertyType == typeof(bool))
            {
                newValue = RndService.Bool();
            }
            else if (prop.PropertyType == typeof(bool?))
            {
                var oldValue = prop.GetValue(obj) as bool?;

                if (oldValue == null)
                {
                    newValue = RndService.Bool();
                }
                else
                {
                    newValue = !oldValue.Value;
                }
            }
            else if (prop.PropertyType == typeof(int))
            {
                newValue = RndService.Int();
            }
            else if (prop.PropertyType == typeof(int?))
            {
                newValue = RndService.Bool()
                    ? (int?)null
                    : RndService.Int();
            }
            else if (prop.PropertyType == typeof(uint))
            {
                newValue = (uint)RndService.Int();
            }
            else if (prop.PropertyType == typeof(uint?))
            {
                newValue = RndService.Bool()
                            ? null
                            : (uint?)RndService.Int();
            }
            else if (prop.PropertyType == typeof(Collection <string>))
            {
                var resultLength = RndService.Int(10);
                var result       = new Collection <string>();

                for (var index = 0; index < resultLength; index++)
                {
                    result.Add(RndService.String());
                }

                newValue = result;
            }
            else if (prop.PropertyType == typeof(List <string>))
            {
                var resultLength = RndService.Int(10);
                var result       = new List <string>();

                for (var index = 0; index < resultLength; index++)
                {
                    result.Add(RndService.String());
                }

                newValue = result;
            }
            else if (prop.PropertyType == typeof(double?) || prop.PropertyType == typeof(double))
            {
                newValue = (double)RndService.Int();
            }
            else
            {
                throw new SPMeta2NotImplementedException(string.Format("Update validation for type: [{0}] is not supported yet", prop.PropertyType));
            }

            return(newValue);
        }