Beispiel #1
0
        public Case(Type testClass, MethodInfo caseMethod, params object[] parameters)
        {
            this.parameters = parameters != null && parameters.Length == 0 ? null : parameters;
            Class           = testClass;

            Method = caseMethod.IsGenericMethodDefinition
                         ? caseMethod.MakeGenericMethod(GenericArgumentResolver.ResolveTypeArguments(caseMethod, parameters))
                         : caseMethod;

            Name = GetName();
        }
Beispiel #2
0
        public Case(MethodInfo caseMethod, params object[] parameters)
        {
            Parameters = parameters != null && parameters.Length == 0 ? null : parameters;
            Class      = caseMethod.ReflectedType;

            Method = caseMethod.IsGenericMethodDefinition
                         ? caseMethod.MakeGenericMethod(GenericArgumentResolver.ResolveTypeArguments(caseMethod, parameters))
                         : caseMethod;

            MethodGroup = new MethodGroup(caseMethod);

            Name = GetName();

            exceptions = new List <Exception>();
        }
Beispiel #3
0
        private static MethodInfo TryResolveTypeArguments(MethodInfo caseMethod, object[] parameters)
        {
            if (caseMethod.IsGenericMethodDefinition)
            {
                var typeArguments = GenericArgumentResolver.ResolveTypeArguments(caseMethod, parameters);

                try
                {
                    return(caseMethod.MakeGenericMethod(typeArguments));
                }
                catch (Exception)
                {
                    return(caseMethod);
                }
            }

            return(caseMethod);
        }