예제 #1
0
 private Expression(string methodName, bool passNullParameterValues, object[] parameterValues, ExpressionTest <T> expressionTest)
 {
     SetupMethodTest(methodName, expressionTest);
     MethodName = methodName;
     PassNullParameterValues = passNullParameterValues;
     ParameterValues         = parameterValues;
     SetParameterTypes(parameterValues);
     ExpressionTest = expressionTest;
 }
예제 #2
0
 /// <summary>
 ///   Test Expression
 /// </summary>
 public void Test()
 {
     if (ExpressionTest.TargetInstance == null)
     {
         ExpressionTest.TargetInstance = ExpressionTest.Target.Type.CreateInstance(ExpressionTest.Target.ClassFields);
     }
     InvokeMethod();
     ExpressionTest.SetActualOutputs();
 }
예제 #3
0
        private void InvokeMethod()
        {
            var methodInfo = this.GetMethod();
            var instance   = ExpressionTest.TargetInstance;

            if (methodInfo != null)
            {
                try
                {
                    if (methodInfo.ReturnType != typeof(void))
                    {
                        ExpressionTest.TargetInstance =
                            methodInfo.Invoke(methodInfo.IsStatic ?
                                              null :
                                              instance, ParameterValues);
                    }
                    else
                    {
                        methodInfo.Invoke(methodInfo.IsStatic ?
                                          null :
                                          instance, ParameterValues);
                    }
                }
                catch (Exception e)
                {
                    if (e.InnerException != null)
                    {
                        ExpressionTest.TargetInstance = e.InnerException.GetType().Name;
                        ExpressionTest.SetErrorMessages();
                    }
                    else
                    {
                        ExpressionTest.TargetInstance = e.GetType().Name;
                    }
                }
            }
        }
예제 #4
0
 /// <summary>
 ///     Verify expression expected output equals to actual output
 /// </summary>
 public void Verify()
 {
     ExpressionTest.Verify(MethodName);
 }
예제 #5
0
 /// <summary>
 ///     Expression to create ExpressionInfo instance usually used to test expression with null parameter values
 /// </summary>
 /// <param name="methodName">Name of expression to be tested</param>
 /// <param name="expressionTest">Expression test information e.g. Target class, expected output and other parameters</param>
 /// <returns>ExpressionInfo object</returns>
 public static Expression <T> CreateWithNullParameters(string methodName, ExpressionTest <T> expressionTest)
 {
     return(new Expression <T>(methodName, true, new object[0], expressionTest));
 }
예제 #6
0
 /// <summary>
 ///     Expression to create ExpressionInfo instance usually used to test expression with default parameter values
 /// </summary>
 /// <param name="methodName">Name of expression to be tested</param>
 /// <param name="parameterValues">Parameter user defined values</param>
 /// <param name="expressionTest">Expression test information e.g. Target class, expected output and other parameters</param>
 /// <returns>ExpressionInfo object</returns>
 public static Expression <T> Create(string methodName, object[] parameterValues, ExpressionTest <T> expressionTest)
 {
     return(new Expression <T>(methodName, false, parameterValues, expressionTest));
 }
예제 #7
0
 /// <summary>
 ///     Expression to create ExpressionInfo instance usually used to test expression with default parameter values
 /// </summary>
 /// <param name="methodName">Name of expression to be tested</param>
 /// <param name="expressionTest">Expression test information e.g. Target class, expected output and other parameters</param>
 /// <returns>ExpressionInfo object</returns>
 public static Expression <T> Create(string methodName, ExpressionTest <T> expressionTest)
 {
     return(new Expression <T>(methodName, false, new object[0], expressionTest));
 }
예제 #8
0
 private void SetupMethodTest(string methodName, ExpressionTest <T> expressionTest)
 {
     expressionTest.Name           = $"Testing expression [{methodName}] in ";
     expressionTest.ExpressionInfo = this;
 }