Ejemplo n.º 1
0
        public void Method_Property_Field_basic_test()
        {
            var x = new MyTestService();

            var target = new Interpreter().SetVariable("x", x);

            Assert.AreEqual(x.HelloWorld(), target.Eval("x.HelloWorld()"));
            Assert.AreEqual(x.AProperty, target.Eval("x.AProperty"));
            Assert.AreEqual(x.AField, target.Eval("x.AField"));
        }
Ejemplo n.º 2
0
        public void Chaining_Methods()
        {
            var x = new MyTestService();

            var target = new Interpreter();

            target.SetVariable("x", x);

            Assert.AreEqual(x.HelloWorld().ToUpper(), target.Eval("x.HelloWorld().ToUpper()"));
        }
Ejemplo n.º 3
0
        public void Methods_Fields_And_Properties_By_Default_Are_Case_Sensitive()
        {
            var target = new Interpreter();

            var x          = new MyTestService();
            var parameters = new[] {
                new Parameter("x", x.GetType(), x)
            };

            Assert.AreEqual(x.HelloWorld(), target.Eval("x.HelloWorld()", parameters));
            Assert.AreEqual(x.HELLOWORLD(), target.Eval("x.HELLOWORLD()", parameters));
            Assert.AreEqual(x.AProperty, target.Eval("x.AProperty", parameters));
            Assert.AreEqual(x.APROPERTY, target.Eval("x.APROPERTY", parameters));
            Assert.AreEqual(x.AField, target.Eval("x.AField", parameters));
            Assert.AreEqual(x.AFIELD, target.Eval("x.AFIELD", parameters));
        }
Ejemplo n.º 4
0
        public void Complex_expression()
        {
            var target = new Interpreter();

            var x          = new MyTestService();
            var y          = 5;
            var parameters = new[] {
                new Parameter("x", x.GetType(), x),
                new Parameter("y", y.GetType(), y),
            };

            Assert.AreEqual(x.AProperty > y && x.HelloWorld().Length == 10, target.Eval("x.AProperty      >\t y && \r\n x.HelloWorld().Length == 10", parameters));
            Assert.AreEqual(x.AProperty * (4 + 65) / x.AProperty, target.Eval("x.AProperty * (4 + 65) / x.AProperty", parameters));

            Assert.AreEqual(Convert.ToString(x.AProperty * (4 + 65) / x.AProperty), target.Eval("Convert.ToString(x.AProperty * (4 + 65) / x.AProperty)", parameters));
        }
Ejemplo n.º 5
0
        public void Methods_Fields_and_Properties_On_Parameters()
        {
            var target = new Interpreter();

            var x          = new MyTestService();
            var y          = "davide";
            var z          = 5;
            var w          = DateTime.Today;
            var parameters = new[] {
                new Parameter("x", x.GetType(), x),
                new Parameter("y", y.GetType(), y),
                new Parameter("z", z.GetType(), z),
                new Parameter("w", w.GetType(), w)
            };

            Assert.AreEqual(x.HelloWorld(), target.Eval("x.HelloWorld()", parameters));
            Assert.AreEqual(x.CallMethod(y, z, w), target.Eval("x.CallMethod( y, z,w)", parameters));
            Assert.AreEqual(x.AProperty + 1, target.Eval("x.AProperty + 1", parameters));
            Assert.AreEqual(x.AField, target.Eval("x.AField", parameters));
        }
Ejemplo n.º 6
0
        public void Methods_Fields_and_Properties_On_Parameters()
        {
            var target = new Interpreter();

            var x = new MyTestService();
            var y = "davide";
            var z = 5;
            var w = DateTime.Today;
            var parameters = new[] {
                            new Parameter("x", x.GetType(), x),
                            new Parameter("y", y.GetType(), y),
                            new Parameter("z", z.GetType(), z),
                            new Parameter("w", w.GetType(), w)
                            };

            Assert.AreEqual(x.HelloWorld(), target.Eval("x.HelloWorld()", parameters));
            Assert.AreEqual(x.CallMethod(y, z, w), target.Eval("x.CallMethod( y, z,w)", parameters));
            Assert.AreEqual(x.AProperty + 1, target.Eval("x.AProperty + 1", parameters));
            Assert.AreEqual(x.AField, target.Eval("x.AField", parameters));
        }
Ejemplo n.º 7
-1
        public void Complex_expression()
        {
            var target = new Interpreter();

            var x = new MyTestService();
            var y = 5;
            var parameters = new[] {
                            new Parameter("x", x.GetType(), x),
                            new Parameter("y", y.GetType(), y),
                            };

            Assert.AreEqual(x.AProperty > y && x.HelloWorld().Length == 10, target.Eval("x.AProperty      >\t y && \r\n x.HelloWorld().Length == 10", parameters));
            Assert.AreEqual(x.AProperty * (4 + 65) / x.AProperty, target.Eval("x.AProperty * (4 + 65) / x.AProperty", parameters));

            Assert.AreEqual(Convert.ToString(x.AProperty * (4 + 65) / x.AProperty), target.Eval("Convert.ToString(x.AProperty * (4 + 65) / x.AProperty)", parameters));
        }