Пример #1
0
        public void TestCallAmbiguous()
        {
            ISmartInvoker _si = CreateSmartInvoker();

            object[] arg    = new object[] { 1 };
            object   result = _si.Invoke("Sum", arg);
        }
Пример #2
0
        public void TestOptVarArgsOmitAll()
        {
            ISmartInvoker _si = CreateSmartInvoker();

            object[] args   = new object[] { 1 };
            object   result = _si.Invoke("OptAndVarArgs", args);

            Assert.AreEqual("4.1", result);
        }
Пример #3
0
        public void TestCallV3()
        {
            ISmartInvoker _si = CreateSmartInvoker();

            object[] arg    = new object[] { 1, 2, 3, 4 };
            object   result = _si.Invoke("Sum", arg);

            Assert.AreEqual("v3", result);
        }
Пример #4
0
        public void TestVarArgsMoreArg()
        {
            ISmartInvoker _si = CreateSmartInvoker();

            object[] args   = new object[] { 1, 2, 3, 4, 5 };
            object   result = _si.Invoke("VarArgs", args);

            Assert.AreEqual("3.2", result);
        }
Пример #5
0
        public void TestOptArgOmitArg()
        {
            ISmartInvoker _si = CreateSmartInvoker();

            object[] args   = new object[] { 1, 2 };
            object   result = _si.Invoke("OptionalArgs", args);

            Assert.AreEqual("2.2", result);
        }
Пример #6
0
        public void TestNormalErr()
        {
            ISmartInvoker _si = CreateSmartInvoker();

            object[] args   = new object[] { 1, 2 };
            object   result = _si.Invoke("Normal", args);

            Assert.AreEqual("1", result);
        }
Пример #7
0
        public void TestOptVarArgsProvideOptMoreVarArg()
        {
            ISmartInvoker _si = CreateSmartInvoker();

            object[] args   = new object[] { 1, 2, 3, 4, 5 };
            object   result = _si.Invoke("OptAndVarArgs", args);

            Assert.AreEqual("4.3", result);
        }
Пример #8
0
        public override object Visit(NewNode obj)
        {
            ClassDefination cd = (ClassDefination)obj.Type.Accept(this);

            object[] paramList = (object[])obj.CtorParams.Accept(this);

            ISmartInvoker s = EvalSmartInvoker.CreateInstance(cd.ObjType, false);

            return(s.InvokeConstructor(paramList));
        }