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); }
public void EvaluateExpression1() { EvaluationContext context = new EvaluationContext(); int v = context.EvaluateExpression <int>("1 + a", new { a = 4 }); Assert.AreEqual(5, v); }
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); }
public void EvaluateBaseType1() { EvaluationContext context = new EvaluationContext(); bool v = context.EvaluateExpression <bool>("DateTime.Today.DayOfWeek == 5"); Assert.AreEqual((int)DateTime.Today.DayOfWeek == 5, v); }
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); }
public void EvaluateProperty4() { EvaluationContext context = new EvaluationContext(); int v = context.EvaluateExpression <int>("par3.par4.b", obj1); Assert.AreEqual(56, v); }
public void EvaluateProperty2() { EvaluationContext context = new EvaluationContext(); decimal v = context.EvaluateExpression <decimal>("par2", obj1); Assert.AreEqual(13.2m, v); }
public void EvaluateProperty1() { EvaluationContext context = new EvaluationContext(); decimal v = context.EvaluateExpression <int>("par1", obj1); Assert.AreEqual(12, v); }
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); }
public void EvaluateBaseType2() { EvaluationContext context = new EvaluationContext(); int v = context.EvaluateExpression <int>("DateTime.Today.DayOfWeek + 1"); Assert.AreEqual((int)DateTime.Today.DayOfWeek + 1, v); }
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; } } }
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); }