Evaluator.Evaluate ("File.Exists (\"/etc/passwd\");");
}
+ [Test]
+ public void UsingWithError ()
+ {
+ try {
+ Evaluator.Run ("using System.DateTime;");
+ Assert.Fail ("#1");
+ } catch {
+ }
+
+ Evaluator.Evaluate ("1+1");
+ }
+
+ [Test]
+ public void UsingAlias ()
+ {
+ Evaluator.Run("using System;");
+ Evaluator.Run("using MyConsole = System.Console;");
+ Evaluator.Run("Console.WriteLine(\"Hello World\")");
+ }
+
[Test]
public void WithTypeBuilders ()
{
Evaluator.Run ("var a = new int[]{1,2,3};");
object res = Evaluator.Evaluate ("from x in a select x + 1;");
- CollectionAssert.AreEqual (new int[] { 2, 3, 4 }, ((IEnumerable<int>) res).ToArray ());
+
+ Assert.AreEqual (new int[] { 2, 3, 4 }, ((IEnumerable<int>) res).ToArray ());
}
[Test]
Assert.AreEqual ("1+", sres, "The result should have been the input string, since we have a partial input");
}
-#if NET_4_0
+ [Test]
+ public void GotoWithUnreachableStatement ()
+ {
+ Evaluator.Run ("using System;");
+
+ string code = "var x = new Action(() => {" +
+ "Console.WriteLine(\"beforeGoto\");" +
+ "goto L;" +
+ "L:" +
+ "Console.WriteLine(\"afterGoto\");" +
+ "});";
+
+ Assert.IsTrue (Evaluator.Run (code), "#1");
+ Assert.IsTrue (Evaluator.Run ("x();"), "#2");
+ }
+
+ [Test]
+ public void CapturedLocalVariable ()
+ {
+ Evaluator.Run ("using System;");
+
+ var res = Evaluator.Evaluate("var x = 123; Action a = () => x++; a(); x;");
+ Assert.AreEqual (124, res);
+ }
+
[Test]
public void DynamicStatement ()
{
Evaluator.Run ("d = 'a';");
Evaluator.Run ("d.GetType ();");
}
-#endif
+
+ [Test]
+ public void AwaitExpression ()
+ {
+ Evaluator.WaitOnTask = true;
+ var res = Evaluator.Evaluate("var res = await System.Threading.Tasks.Task.FromResult (1) + await System.Threading.Tasks.Task.FromResult (2);");
+ res = Evaluator.Evaluate ("res;");
+ Assert.AreEqual (3, res, "#1");
+ }
+
+ [Test]
+ public void UsingStatic ()
+ {
+ Evaluator.Run ("using static System.String;");
+ var res = Evaluator.Evaluate("Join (\"--\", new [] { \"a\", \"b\" } );");
+ Assert.AreEqual ("a--b", res);
+ }
+
}
-}
\ No newline at end of file
+}