public void RetransposingYieldsTheSame() { TestService service = new TestService(); Method method = service.GetClass().FindMethodByName("FixedVarMethod"); object[] args = new object[] { 1, 2, 3, 4 }; args = method.TransposeVariableArguments(args); args = method.TransposeVariableArguments(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 Bug8148() { // // Bug #8148: Varargs transposition drops args // http://developer.berlios.de/bugs/?func=detailbug&bug_id=8148&group_id=4638 // TestService service = new TestService(); Method method = service.GetClass().FindMethodByName("FixedVarMethod"); object[] args = new object[] { 1, 2, new int[] { 3, 4 }, new JsonObject(new string[] { "five", "six" }, new object[] { 5, 6 }) }; args = method.TransposeVariableArguments(args); Assert.AreEqual(3, args.Length); Assert.AreEqual(1, args[0]); Assert.AreEqual(2, args[1]); object[] varargs = (object[])args[2]; Assert.AreEqual(2, varargs.Length); Assert.AreEqual(new int[] { 3, 4 }, varargs[0]); JsonObject o = (JsonObject)varargs[1]; Assert.AreEqual(5, o["five"]); Assert.AreEqual(6, o["six"]); }
public void VariableArguments() { TestService service = new TestService(); Method method = service.GetClass().FindMethodByName("VarMethod"); object[] args = new object[] { 1, 2, 3, 4 }; object[] invokeArgs = method.TransposeVariableArguments(args); Assert.AreEqual(1, invokeArgs.Length); Assert.AreEqual(args, invokeArgs[0]); }
public void Bug8131() { // // Bug #8131: Varargs transposition when last arg is collection // http://developer.berlios.de/bugs/?func=detailbug&bug_id=8131&group_id=4638 // TestService service = new TestService(); Method method = service.GetClass().FindMethodByName("VarMethod"); object[] args = new object[] { 1, 2, new int[] { 3, 4 } }; args = method.TransposeVariableArguments(args); Assert.AreEqual(1, args.Length); object[] varargs = (object[])args[0]; Assert.AreEqual(3, varargs.Length); Assert.AreEqual(1, varargs[0]); Assert.AreEqual(2, varargs[1]); Assert.AreEqual(new int[] { 3, 4 }, varargs[2]); }