public void can_get_invocation_name_from_class() { var result = ExpressionTools.GetInvocation <SampleClass>(i => i.PlainMethod()); Assert.AreEqual("PlainMethod", result.MethodName); Assert.AreEqual(0, result.ParameterValues.Length); }
public void can_get_invocation_name_and_parameters_from_returning_functions_on_interfaces() { var result = ExpressionTools.GetInvocation <ISampleInterface>(i => i.Returns(1)); Assert.AreEqual("Returns", result.MethodName); Assert.AreEqual(1, result.ParameterValues[0]); }
public void can_get_invocation_name_and_parameters_from_class() { var result = ExpressionTools.GetInvocation <SampleClass>( i => i.ComplexMethod(1, "two", _three) ); Assert.AreEqual("ComplexMethod", result.MethodName); Assert.AreEqual(1, result.ParameterValues[0]); Assert.AreEqual("two", result.ParameterValues[1]); Assert.AreEqual(_three, result.ParameterValues[2]); }
public void variable_values_are_returned_as_at_call_time() { // ReSharper disable AccessToModifiedClosure var v = 1; var result = ExpressionTools.GetInvocation <ISampleInterface>(i => i.Returns(v)); v = 2; // ReSharper restore AccessToModifiedClosure Assert.AreEqual("Returns", result.MethodName); Assert.AreEqual(1, result.ParameterValues[0]); Assert.AreNotEqual(v, result.ParameterValues[0]); }