コード例 #1
0
		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;
		}
コード例 #2
0
        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);
        }
コード例 #3
0
        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");
        }
コード例 #4
0
        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"));
        }
コード例 #5
0
        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");
        }