public static object ResultOfAction(IAction action) { object receiver = new NamedObject("receiver"); MethodInfoStub methodInfo = new MethodInfoStub("method"); Invocation invocation = new Invocation(receiver, methodInfo, new object[0]); action.Invoke(invocation); return invocation.Result; }
private static object ValueReturnedForType(IAction action, Type returnType) { var method = new MethodInfoStub("method", new ParameterInfo[0]); method.StubReturnType = returnType; var invocation = new Invocation(RECEIVER, method, new object[0]); action.Invoke(invocation); return(invocation.Result); }
public void SetsExceptionOfInvocation() { Exception exception = new Exception(); ThrowAction action = new ThrowAction(exception); object receiver = new object(); MethodInfoStub methodInfo = new MethodInfoStub("method"); Invocation invocation = new Invocation(receiver, methodInfo, new object[0]); ((IAction)action).Invoke(invocation); Assert.AreSame(exception, invocation.Exception, "exception"); }
public void SetsNamedParameterOnInvocationWrong() { object receiver = new object(); MethodInfoStub methodInfo = new MethodInfoStub("method", new ParameterInfoStub("p1", ParameterAttributes.In), new ParameterInfoStub("p2", ParameterAttributes.Out)); string name = "p2_wrong"; object value = new object(); Invocation invocation = new Invocation(receiver, methodInfo, new object[] { null, null }); SetNamedParameterAction action = new SetNamedParameterAction(name, value); Expect.That(() => ((IAction)action).Invoke(invocation)).Throws <ArgumentException>(new StringContainsMatcher("no such parameter\r\nParameter name: p2_wrong")); }
public void SetsNamedParameterOnInvocation() { object receiver = new object(); MethodInfoStub methodInfo = new MethodInfoStub("method", new ParameterInfoStub("p1", ParameterAttributes.In), new ParameterInfoStub("p2", ParameterAttributes.Out)); string name = "p2"; object value = new object(); Invocation invocation = new Invocation(receiver, methodInfo, new object[] { null, null }); SetNamedParameterAction action = new SetNamedParameterAction(name, value); ((IAction)action).Invoke(invocation); Assert.AreSame(value, invocation.Parameters[1], "set value"); }