Example #1
0
        public void EvaluateStaticProperty1()
        {
            EvaluationContext context = new EvaluationContext();
            DayOfWeek         v       = context.EvaluateExpression <DayOfWeek>("DateTime.Today.DayOfWeek");

            Assert.AreEqual(DateTime.Today.DayOfWeek, v);
            v = context.EvaluateExpression <DayOfWeek>("System.DateTime.Today.DayOfWeek");
            Assert.AreEqual(DateTime.Today.DayOfWeek, v);
        }
Example #2
0
        public void EvaluateExpression1()
        {
            EvaluationContext context = new EvaluationContext();
            int v = context.EvaluateExpression <int>("1 + a", new { a = 4 });

            Assert.AreEqual(5, v);
        }
Example #3
0
        public void EvaluateStringConstant1()
        {
            EvaluationContext context = new EvaluationContext();
            string            v       = context.EvaluateExpression <string>(@"""\\\""\a\b\f\n\r\t\v""");

            Assert.AreEqual("\\\"\a\b\f\n\r\t\v", v);
        }
Example #4
0
        public void EvaluateBaseType1()
        {
            EvaluationContext context = new EvaluationContext();
            bool v = context.EvaluateExpression <bool>("DateTime.Today.DayOfWeek == 5");

            Assert.AreEqual((int)DateTime.Today.DayOfWeek == 5, v);
        }
Example #5
0
        public void EvaluateStaticProperty2()
        {
            EvaluationContext context = new EvaluationContext();
            bool v = context.EvaluateExpression <bool>("DateTime.Today.DayOfWeek == DayOfWeek.Friday");

            Assert.AreEqual(DateTime.Today.DayOfWeek == DayOfWeek.Friday, v);
        }
Example #6
0
        public void EvaluateProperty4()
        {
            EvaluationContext context = new EvaluationContext();
            int v = context.EvaluateExpression <int>("par3.par4.b", obj1);

            Assert.AreEqual(56, v);
        }
Example #7
0
        public void EvaluateProperty2()
        {
            EvaluationContext context = new EvaluationContext();
            decimal           v       = context.EvaluateExpression <decimal>("par2", obj1);

            Assert.AreEqual(13.2m, v);
        }
Example #8
0
        public void EvaluateProperty1()
        {
            EvaluationContext context = new EvaluationContext();
            decimal           v       = context.EvaluateExpression <int>("par1", obj1);

            Assert.AreEqual(12, v);
        }
Example #9
0
        public void EvaluateTypeCast1()
        {
            EvaluationContext context = new EvaluationContext();
            short             v       = context.EvaluateExpression <short>("(short)DateTime.Today.DayOfWeek + 1");

            Assert.AreEqual((short)DateTime.Today.DayOfWeek + 1, v);
        }
Example #10
0
        public void EvaluateBaseType2()
        {
            EvaluationContext context = new EvaluationContext();
            int v = context.EvaluateExpression <int>("DateTime.Today.DayOfWeek + 1");

            Assert.AreEqual((int)DateTime.Today.DayOfWeek + 1, v);
        }
Example #11
0
        private static void Test(string line)
        {
            string[] l = line.Split(new[] { ';' }, 2);

            l[0] = l[0].Trim();
            Type t;
            EvaluationContext context = new EvaluationContext();

            if (context.TypeAliases.ContainsKey(l[0].ToLowerInvariant()))
            {
                t = context.TypeAliases[l[0].ToLowerInvariant()];
            }
            else
            {
                Assembly asm      = typeof(int).Assembly;
                string   testType = l[0][0].ToString().ToUpperInvariant() + l[0].Substring(1);
                if (!testType.StartsWith("System."))
                {
                    testType = "System." + testType;
                }
                t = !testType.StartsWith("System.")
                                        ? (asm.GetType("System." + testType) ?? asm.GetType(testType))
                                        : asm.GetType(testType);
                if (t == null)
                {
                    throw new Exception($"Type '{testType}' not found");
                }
            }
            line = l[1];

            l = line.Split(new[] { ';' }, 2);
            object result;

            try
            {
                result = context.EvaluateExpression(l[1]);
                object expectedResult = ParseResult(t, l[0]);
                Assert.AreEqual(expectedResult, result);
            }
            catch (Exception e)
            {
                if (!Exceptions.ContainsKey(l[0]) || e.GetType() != Exceptions[l[0]])
                {
                    throw;
                }
            }
        }
Example #12
0
        public void EvaluateCharConstant1()
        {
            EvaluationContext context = new EvaluationContext();
            char v = context.EvaluateExpression <char>(@"'\''");

            Assert.AreEqual('\'', v);
            v = context.EvaluateExpression <char>(@"'\a'");
            Assert.AreEqual('\a', v);
            v = context.EvaluateExpression <char>(@"'\b'");
            Assert.AreEqual('\b', v);
            v = context.EvaluateExpression <char>(@"'\f'");
            Assert.AreEqual('\f', v);
            v = context.EvaluateExpression <char>(@"'\n'");
            Assert.AreEqual('\n', v);
            v = context.EvaluateExpression <char>(@"'\r'");
            Assert.AreEqual('\r', v);
            v = context.EvaluateExpression <char>(@"'\t'");
            Assert.AreEqual('\t', v);
            v = context.EvaluateExpression <char>(@"'\v'");
            Assert.AreEqual('\v', v);
        }