public void VariableArguments() { TestService service = new TestService(); IRpcMethodDescriptor method = service.GetDescriptor().FindMethodByName("VarMethod"); object[] args = new object[] { 1, 2, 3, 4 }; object[] invokeArgs = JsonRpcServices.TransposeVariableArguments(method, args); Assert.AreEqual(1, invokeArgs.Length); Assert.AreEqual(args, invokeArgs[0]); }
public void FixedAndVariableArguments() { TestService service = new TestService(); IRpcMethodDescriptor method = service.GetDescriptor().FindMethodByName("FixedVarMethod"); object[] args = new object[] { 1, 2, 3, 4 }; args = JsonRpcServices.TransposeVariableArguments(method, args); Assert.AreEqual(3, args.Length); Assert.AreEqual(1, args[0]); Assert.AreEqual(2, args[1]); Assert.AreEqual(new object[] { 3, 4 }, args[2]); }
public void FailedMethodYieldsInvocationException() { try { TestService service = new TestService(); service.GetDescriptor().GetMethodByName("BadMethod").Invoke(service, null); Assert.Fail("Expecting an exception."); } catch (TargetMethodException e) { Assert.IsTrue(e.InnerException.GetType() == typeof(ApplicationException), "Unexpected inner exception ({0}).", e.InnerException.GetType().FullName); } }