Beispiel #1
0
        public void TriggerUndefined()
        {
            var script = new ScriptEngine();

            script.AddAction <string>("log1", message =>
            {
                Assert.AreEqual("Hello World 1!", message);
            });
            script.AddAction <string>("log2", message =>
            {
                Assert.AreEqual("Hello World 2!", message);
            });
            script.AddAction <string>("log", message =>
            {
                Assert.Fail();
            });
            var code = new StringBuilder();

            code.AppendLine("event action");
            code.AppendLine("    log1('Hello World 1!')");
            code.AppendLine("    log2('Hello World 2!')");
            code.AppendLine("event foo");
            code.AppendLine("    log('Goodbye World!')");
            script.Process(code.ToString());
            script.Trigger("test");
        }
Beispiel #2
0
 public void ExecuteOverload()
 {
     var script = new ScriptEngine();
     script.AddAction<string>("log", message =>
     {
         Assert.AreEqual("Hello World!", message);
     });
     script.AddAction<string, string>("log", (message1, message2) =>
     {
         Assert.AreEqual("Hello World!", message1 + " " + message2);
     });
     var code = new StringBuilder();
     code.AppendLine("log('Hello World!')"); // Should run log, pass { indent: 1 }
     code.AppendLine("log('Hello', 'World!')"); // Should run log, pass { indent: 1 }
     script.Execute(code.ToString());
 }
Beispiel #3
0
        public void ExecuteOverload()
        {
            var script = new ScriptEngine();

            script.AddAction <string>("log", message =>
            {
                Assert.AreEqual("Hello World!", message);
            });
            script.AddAction <string, string>("log", (message1, message2) =>
            {
                Assert.AreEqual("Hello World!", message1 + " " + message2);
            });
            var code = new StringBuilder();

            code.AppendLine("log('Hello World!')");    // Should run log, pass { indent: 1 }
            code.AppendLine("log('Hello', 'World!')"); // Should run log, pass { indent: 1 }
            script.Execute(code.ToString());
        }
Beispiel #4
0
 public void TriggerFunction()
 {
     var script = new ScriptEngine();
     script.AddAction<int>("log1", message =>
     {
         Assert.AreEqual(10, message);
     });
     script.AddAction<string>("log2", message =>
     {
         Assert.Fail();
     });
     var code = new StringBuilder();
     code.AppendLine("event drop(item)");
     code.AppendLine("    log1(item)");
     code.AppendLine("event foo");
     code.AppendLine("    log2('Goodbye World!')");
     script.Process(code.ToString());
     script.Trigger("drop", 10);
 }
Beispiel #5
0
 public void ConditionBoolFalse()
 {
     var script = new ScriptEngine();
     script.AddAction<string>("log", message =>
     {
         Assert.Fail("This should never be called.");
     });
     var code = new StringBuilder();
     code.AppendLine("if (false)"); // Basic if statment
     code.AppendLine("    log('Hello World!')"); // Should run log, pass { indent: 1 }
     script.Execute(code.ToString());
 }
Beispiel #6
0
 public void ConditionBoolTrue()
 {
     var script = new ScriptEngine();
     script.AddAction<string>("log", message =>
     {
         Assert.IsTrue(message == "test1" || message == "test2");
     });
     var code = new StringBuilder();
     code.AppendLine("for (var i in ['test1', 'test2'])"); // Basic if statment
     code.AppendLine("    log(i)"); // Should run log, pass { indent: 1 }
     script.Execute(code.ToString());
 }
Beispiel #7
0
        public void TriggerFunction()
        {
            var script = new ScriptEngine();

            script.AddAction <int>("log1", message =>
            {
                Assert.AreEqual(10, message);
            });
            script.AddAction <string>("log2", message =>
            {
                Assert.Fail();
            });
            var code = new StringBuilder();

            code.AppendLine("event drop(item)");
            code.AppendLine("    log1(item)");
            code.AppendLine("event foo");
            code.AppendLine("    log2('Goodbye World!')");
            script.Process(code.ToString());
            script.Trigger("drop", 10);
        }
Beispiel #8
0
 public void ConditionBoolTrue()
 {
     var script = new ScriptEngine();
     script.AddAction<string>("log", message =>
     {
         Assert.AreEqual("Hello World!", message);
     });
     var code = new StringBuilder();
     code.AppendLine("if (true)"); // Basic if statment
     code.AppendLine("    log('Hello World!')"); // Should run log, pass { indent: 1 }
     script.Execute(code.ToString());
 }
Beispiel #9
0
 public void FunctionInvalidArguments()
 {
     var script = new ScriptEngine();
     script.AddAction<string>("log", message =>
     {
         Assert.Fail();
     });
     script.Exception(e =>
     {
         Assert.AreEqual("Unexpected string on Line 1 Col 14", e.Message);
     });
     script.Execute("log('Missing' 'Comma!')");
 }
Beispiel #10
0
        public void FunctionInvalidArguments()
        {
            var script = new ScriptEngine();

            script.AddAction <string>("log", message =>
            {
                Assert.Fail();
            });
            script.Exception(e =>
            {
                Assert.AreEqual("Unexpected string on Line 1 Col 14", e.Message);
            });
            script.Execute("log('Missing' 'Comma!')");
        }
Beispiel #11
0
        public void ConditionBoolFalse()
        {
            var script = new ScriptEngine();

            script.AddAction <string>("log", message =>
            {
                Assert.Fail("This should never be called.");
            });
            var code = new StringBuilder();

            code.AppendLine("if (false)");              // Basic if statment
            code.AppendLine("    log('Hello World!')"); // Should run log, pass { indent: 1 }
            script.Execute(code.ToString());
        }
Beispiel #12
0
        public void ConditionBoolTrue()
        {
            var script = new ScriptEngine();

            script.AddAction <string>("log", message =>
            {
                Assert.IsTrue(message == "test1" || message == "test2");
            });
            var code = new StringBuilder();

            code.AppendLine("for (var i in ['test1', 'test2'])"); // Basic if statment
            code.AppendLine("    log(i)");                        // Should run log, pass { indent: 1 }
            script.Execute(code.ToString());
        }
Beispiel #13
0
        public void ConditionBoolTrue()
        {
            var script = new ScriptEngine();

            script.AddAction <string>("log", message =>
            {
                Assert.AreEqual("Hello World!", message);
            });
            var code = new StringBuilder();

            code.AppendLine("if (true)");               // Basic if statment
            code.AppendLine("    log('Hello World!')"); // Should run log, pass { indent: 1 }
            script.Execute(code.ToString());
        }
Beispiel #14
0
 public void TriggerUndefined()
 {
     var script = new ScriptEngine();
     script.AddAction<string>("log1", message =>
     {
         Assert.AreEqual("Hello World 1!", message);
     });
     script.AddAction<string>("log2", message =>
     {
         Assert.AreEqual("Hello World 2!", message);
     });
     script.AddAction<string>("log", message =>
     {
         Assert.Fail();
     });
     var code = new StringBuilder();
     code.AppendLine("event action");
     code.AppendLine("    log1('Hello World 1!')");
     code.AppendLine("    log2('Hello World 2!')");
     code.AppendLine("event foo");
     code.AppendLine("    log('Goodbye World!')");
     script.Process(code.ToString());
     script.Trigger("test");
 }
Beispiel #15
0
 public void ConditionBoolFalseOrFalse()
 {
     var script = new ScriptEngine();
     script.Exception(ExceptionHandler);
     script.AddCondition<string>("foo", message =>
     {
         return "bar" == message;
     });
     script.AddAction<string>("log", message =>
     {
         Assert.Fail("This should never be called.");
     });
     var code = new StringBuilder();
     code.AppendLine("if (foo('fail1') and foo('fail2'))"); // Basic if statment
     code.AppendLine("    log('Hello World!')"); // Should run log, pass { indent: 1 }
     script.Execute(code.ToString());
 }
Beispiel #16
0
 private void button_Click(object sender, RoutedEventArgs e)
 {
     var engine = new ScriptEngine();
     engine.Exception(err =>
     {
         error.Text = err.Message;
     });
     engine.AddAction<string>("log", ActionMessage);
     Stopwatch stopWatch = new Stopwatch();
     stopWatch.Start();
     output.Text = engine.Evaluate<string>(code.Text);
     stopWatch.Stop();
     // Get the elapsed time as a TimeSpan value.
     TimeSpan ts = stopWatch.Elapsed;
     time.Text = String.Format("({0:00}.{1:00})",
         ts.Seconds,
         ts.Milliseconds / 10);
 }
Beispiel #17
0
 public void ConditionIfElseBoolTrue()
 {
     var script = new ScriptEngine();
     script.AddCondition<string>("foo", message =>
     {
         return "bar" == message;
     });
     script.AddAction<string>("log", message =>
     {
         Assert.AreEqual("Hello World!", message);
     });
     var code = new StringBuilder();
     code.AppendLine("if (foo('bar'))"); // Basic if statment
     code.AppendLine("    log('Hello World!')");
     code.AppendLine("else if (foo('blarg'))");
     code.AppendLine("    log('Goodbye World!')");
     script.Execute(code.ToString());
 }
Beispiel #18
0
        public void ConditionBoolFalseOrFalse()
        {
            var script = new ScriptEngine();

            script.Exception(ExceptionHandler);
            script.AddCondition <string>("foo", message =>
            {
                return("bar" == message);
            });
            script.AddAction <string>("log", message =>
            {
                Assert.Fail("This should never be called.");
            });
            var code = new StringBuilder();

            code.AppendLine("if (foo('fail1') and foo('fail2'))"); // Basic if statment
            code.AppendLine("    log('Hello World!')");            // Should run log, pass { indent: 1 }
            script.Execute(code.ToString());
        }
Beispiel #19
0
        public void ConditionIfElseBoolFalse()
        {
            var script = new ScriptEngine();

            script.AddCondition <string>("foo", message =>
            {
                return("bar" == message);
            });
            script.AddAction <string>("log", message =>
            {
                Assert.AreEqual("Hello World!", message);
            });
            var code = new StringBuilder();

            code.AppendLine("if (foo('blarg'))"); // Basic if statment
            code.AppendLine("    log('Goodbye World!')");
            code.AppendLine("else if (foo('bar'))");
            code.AppendLine("    log('Hello World!')");
            script.Execute(code.ToString());
        }
Beispiel #20
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            var engine = new ScriptEngine();

            engine.Exception(err =>
            {
                error.Text = err.Message;
            });
            engine.AddAction <string>("log", ActionMessage);
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();
            output.Text = engine.Evaluate <string>(code.Text);
            stopWatch.Stop();
            // Get the elapsed time as a TimeSpan value.
            TimeSpan ts = stopWatch.Elapsed;

            time.Text = String.Format("({0:00}.{1:00})",
                                      ts.Seconds,
                                      ts.Milliseconds / 10);
        }