示例#1
0
 /// <summary>
 /// Construct an object of this Type, using the specified arguments.
 /// </summary>
 public object Construct(object[] args)
 {
     return(Reflect.Construct(Type, args));
 }
        private IEnumerable GetTestCaseSource(MethodInfo method)
        {
            IEnumerable source = null;

            Type sourceType = this.sourceType;

            if (sourceType == null)
            {
                sourceType = method.ReflectedType;
            }

            if (this.sourceName == null)
            {
                return(Reflect.Construct(sourceType) as IEnumerable);
            }

            MemberInfo[] members = sourceType.GetMember(sourceName,
                                                        BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance);
            if (members.Length == 1)
            {
                MemberInfo member       = members[0];
                object     sourceobject = Internal.Reflect.Construct(sourceType);
#if PORTABLE
                if (member is FieldInfo)
                {
                    FieldInfo field = member as FieldInfo;
                    source = (IEnumerable)field.GetValue(sourceobject);
                }
                else if (member is PropertyInfo)
                {
                    PropertyInfo property = member as PropertyInfo;
                    source = (IEnumerable)property.GetValue(sourceobject, null);
                }
                else if (member is MethodInfo)
                {
                    MethodInfo m = member as MethodInfo;
                    source = (IEnumerable)m.Invoke(sourceobject, null);
                }
#else
                switch (member.MemberType)
                {
                case MemberTypes.Field:
                    FieldInfo field = member as FieldInfo;
                    source = (IEnumerable)field.GetValue(sourceobject);
                    break;

                case MemberTypes.Property:
                    PropertyInfo property = member as PropertyInfo;
                    source = (IEnumerable)property.GetValue(sourceobject, null);
                    break;

                case MemberTypes.Method:
                    MethodInfo m = member as MethodInfo;
                    source = (IEnumerable)m.Invoke(sourceobject, null);
                    break;
                }
#endif
            }

            return(source);
        }
示例#3
0
 public void Construct()
 {
     Assert.IsNotNull(Reflect.Construct(myType));
 }
示例#4
0
 public static ITestResult RunParameterizedMethodSuite(Type type, string methodName) => RunTest(MakeParameterizedMethodSuite(type, methodName), Reflect.Construct(type));