public void ReadingAConfiguration_NestedArrayOfObjectsLiteral() { dynamic jsContext = new DynamicJavascriptContext(new Noesis.Javascript.JavascriptContext()); string script = @" Configuration = { Server : 'TOTO', Database : 'Rene', Debug : true, MaxUser : 3, Users : [ { UserName:'******' ,FirstName:'rene' ,LastName:'descartes' }, { UserName:'******' ,FirstName:'blaise' ,LastName:'pascal' }, { UserName:'******' ,FirstName:'charles' ,LastName:'montesquieu' } ] } "; jsContext.Run(script); Assert.AreEqual("TOTO", jsContext.Configuration.Server); Assert.AreEqual("Rene", jsContext.Configuration.Database); Assert.AreEqual(true, jsContext.Configuration.Debug); Assert.AreEqual(3, jsContext.Configuration.MaxUser); Assert.AreEqual(3, jsContext.Configuration.Users.Length); Assert.AreEqual("rdescartes", jsContext.Configuration.Users[0].UserName); Assert.AreEqual("TOTO", jsContext["Configuration"]["Server"]); Assert.AreEqual("Rene", jsContext["Configuration"]["Database"]); Assert.AreEqual(true, jsContext["Configuration"]["Debug"]); Assert.AreEqual(3, jsContext["Configuration"]["MaxUser"]); Assert.AreEqual(3, jsContext["Configuration"]["Users"].Length); Assert.AreEqual("rdescartes", jsContext["Configuration"]["Users"][0].UserName); }
public void ReadingAConfiguration() { dynamic csContext = new DynamicJavascriptContext(new JavascriptContext()); //csContext.Run(System.IO.File.ReadAllText("configuration.js")); csContext.Run(DS.Resources.GetTextResource("configuration.js", Assembly.GetExecutingAssembly())); var server = csContext.Configuration.Server; var databse = csContext.Configuration.Database; var debug = csContext.Configuration.Debug; for (var i = 0; i < csContext.Configuration.Users.Length; i++) { var userName = csContext.Configuration.Users[i].UserName; } }
private static void FunctionCall() { dynamic jsContext = new DynamicJavascriptContext(new JavascriptContext()); string script = @" var F2 = function(pInt,pDouble,pString,pBool,pDate) { var s = ''+pInt+'-'+pDouble+'-'+pString+'-'+pBool+'-'+pDate; console.log(s); return 'F2'; }; "; jsContext.Run(script); var result = jsContext.Call("F2", 1, 123.456, "hello", true, DateTime.Now); }
public void NoesisSampleFromCodeplexWebSite() { dynamic jsContext = new DynamicJavascriptContext( new JavascriptContext() ); jsContext.message = "Hello World !"; jsContext.number = 1; string script = @" var i = 0; for (i = 0; i < 5; i++) console.log(message + ' (' + i + ')'); number += i; "; jsContext.Run(script); Console.WriteLine("number: " + jsContext.number); }
public void ArraySample() { dynamic jsContext = new DynamicJavascriptContext( new JavascriptContext() ); jsContext.a = new object [] { 1, 2, 3 }; // Regular Syntax jsContext.a = jsContext.Array(1, 2, 3); // My Syntax string script = @" a.push(4); "; jsContext.Run(script); Assert.AreEqual(4, jsContext.a.Length); for (var i = 0; i < jsContext.a.Length; i++) { Assert.AreEqual(i + 1, jsContext.a[i]); } }
public void NestedObjects_NestedInputObject_Output() { dynamic jsContext = new DynamicJavascriptContext(new Noesis.Javascript.JavascriptContext()); jsContext.i = jsContext.Object( new { a = jsContext.Object(new { LastName = "Torres", Age = 46 }), b = jsContext.Object(new Person("Ferry", 47)), } ); string script = @" var p1 = { Name : i.a.LastName, Age : i.a.Age } var p2 = { Name : i.b.LastName, Age : i.b.Age } "; jsContext.Run(script); Assert.AreEqual("Torres", jsContext.p1.Name); Assert.AreEqual("Torres", jsContext.p1["Name"]); Assert.AreEqual("Torres", jsContext["p1"]["Name"]); Assert.AreEqual(46, jsContext.p1.Age); Assert.AreEqual(46, jsContext.p1["Age"]); Assert.AreEqual(46, jsContext["p1"]["Age"]); Assert.AreEqual("Ferry", jsContext.p2.Name); Assert.AreEqual("Ferry", jsContext.p2["Name"]); Assert.AreEqual("Ferry", jsContext["p2"]["Name"]); Assert.AreEqual(47, jsContext.p2.Age); Assert.AreEqual(47, jsContext.p2["Age"]); Assert.AreEqual(47, jsContext["p2"]["Age"]); }
static void Main(string[] args) { dynamic jsContext = new DynamicJavascriptContext(new JavascriptContext()); jsContext.message = "Hello World !"; jsContext.number = 1; jsContext.array = jsContext.Array(1, 2, 3); jsContext.instance = jsContext.Object(new { b = 2 }); jsContext.instance2 = jsContext.Object(new { a = 1, b = 2 }); string script = @" number = 123; instance['a'] = 1; instance['Date'] = new Date(); instance2['a'] = 123; console.log('Hello log '+instance['Date']); console.log('array.length:'+array.length); array.push(4); for(var i=0; i<array.length; i++) console.log(array[i]); "; jsContext.Run(script); Console.WriteLine("number: " + jsContext.number); Console.WriteLine("instance: " + jsContext.instance); Console.WriteLine("instance.a: " + jsContext.instance.a); Console.WriteLine("instance.b: " + jsContext.instance.b); Console.WriteLine("instance.Date: " + jsContext.instance.Date); Console.WriteLine("instance2.a: " + jsContext.instance2.a); Console.WriteLine("array:" + jsContext.array.Length); Console.WriteLine("array[3]:" + jsContext.array[3]); FunctionCall(); Console.ReadLine(); }
public void CallingFunctions() { dynamic jsContext = new DynamicJavascriptContext(new JavascriptContext()); DateTime refDate = new DateTime(1964, 12, 11, 01, 02, 03); string script = @" var O2 = { F2: function(pInt,pDouble,pString,pBool,pDate) { return ''+this.Internal+'-'+pInt+'-'+pDouble+'-'+pString+'-'+pBool+'-'+formatDateUS(pDate); }, Internal:1 } "; jsContext.Load("format", Assembly.GetExecutingAssembly()); jsContext.Run(script); var expectedF2 = "1-1-123.456-hello-true-12/11/1964 1:2:3"; var f2Result = jsContext.Call("O2.F2", 1, 123.456, "hello", true, refDate); Assert.AreEqual(expectedF2, f2Result); }