public void Can_Use_Fluent_Member_Set_Property() { var date1 = new DateTime(2012, 6, 2); var date2 = new DateTime(2012, 6, 3); Klass.Reset(); var statements = new List <Tuple <string, Type, object, string> >() { // INSTANCE PROPS ----------------------------------------------------------------------------------- // Static prop get TestCase("result", typeof(double), 124, "klass Prop1 = 124; result = klass Prop1;"), TestCase("result", typeof(string), "fluent2", "klass Prop2 = 'fluent2'; result = klass Prop2;"), TestCase("result", typeof(bool), false, "klass Prop3 = false; result = klass Prop3;"), TestCase("result", typeof(double), date1, "klass Prop4 = new Date(2012,6,2); result = klass Prop4;"), // Static prop get fluent TestCase("result", typeof(double), 124, "Prop1 klass = 124; result = klass Prop1;"), TestCase("result", typeof(string), "fluent2", "Prop2 klass = 'fluent2'; result = klass Prop2;"), TestCase("result", typeof(bool), false, "Prop3 klass = false; result = klass Prop3;"), TestCase("result", typeof(double), date1, "Prop4 klass = new Date(2012,6,2); result = klass Prop4;"), // STATIC PROPS ----------------------------------------------------------------------------------- // Static prop get TestCase("result", typeof(double), 1235, "Klass KProp1 = 1235; result = Klass KProp1;"), TestCase("result", typeof(string), "Fluent2", "Klass KProp2 = 'Fluent2'; result = Klass KProp2;"), TestCase("result", typeof(bool), false, "Klass KProp3 = false; result = Klass KProp3;"), TestCase("result", typeof(double), date2, "Klass KProp4 = new Date(2012,6,3); result = Klass KProp4;"), // Static prop get fluent TestCase("result", typeof(double), 1235, "KProp1 Klass = 1235; result = Klass KProp1;"), TestCase("result", typeof(string), "Fluent2", "KProp2 Klass = 'Fluent2'; result = Klass KProp2;"), TestCase("result", typeof(bool), false, "KProp3 Klass = false; result = Klass KProp3;"), TestCase("result", typeof(double), date2, "KProp4 Klass = new Date(2012,6,3); result = Klass KProp4;"), }; Parse(statements, true, i => { i.Context.Plugins.RegisterAll(); i.Context.Types.Register(typeof(Klass), null); var ltype = Lang.Helpers.LangTypeHelper.ConvertToLangTypeClass(typeof(Klass)); i.Context.Symbols.Global.DefineVariable("klass", ltype); i.Context.Memory.SetValue("klass", new LClass(new Klass())); }); }
public void Can_Use_Fluent_Member_Method_Calls() { var date = new DateTime(2012, 6, 1); Klass.Reset(); var statements = new List <Tuple <string, Type, object, string> >() { // INSTANCE PROPS ----------------------------------------------------------------------------------- // Static prop get TestCase("result", typeof(double), 12, "var result = klass Method1 12, 'fs', true, new Date(2012, 6, 1);"), TestCase("result", typeof(string), "fs", "var result = klass Method2 12, 'fs', true, new Date(2012, 6, 1);"), TestCase("result", typeof(bool), true, "var result = klass Method3 12, 'fs', true, new Date(2012, 6, 1);"), TestCase("result", typeof(double), date, "var result = klass Method4 12, 'fs', true, new Date(2012, 6, 1);"), // Static prop get fluent TestCase("result", typeof(double), 12, "var result = Method1 klass $12, 'fs', on, 6/1/2012;"), TestCase("result", typeof(string), "fs", "var result = Method2 klass $12, 'fs', on, 6/1/2012;"), TestCase("result", typeof(bool), true, "var result = Method3 klass $12, 'fs', on, 6/1/2012;"), TestCase("result", typeof(double), date, "var result = Method4 klass $12, 'fs', on, 6/1/2012;"), // STATIC PROPS ----------------------------------------------------------------------------------- // Static prop get TestCase("result", typeof(double), 12, "var result = Klass KMethod1 12, 'fs', true, new Date(2012, 6, 1);"), TestCase("result", typeof(string), "fs", "var result = Klass KMethod2 12, 'fs', true, new Date(2012, 6, 1);"), TestCase("result", typeof(bool), true, "var result = Klass KMethod3 12, 'fs', true, new Date(2012, 6, 1);"), TestCase("result", typeof(double), date, "var result = Klass KMethod4 12, 'fs', true, new Date(2012, 6, 1);"), // Static prop get fluent TestCase("result", typeof(double), 12, "var result = KMethod1 Klass $12, 'fs', on, 6/1/2012;"), TestCase("result", typeof(string), "fs", "var result = KMethod2 Klass $12, 'fs', on, 6/1/2012;"), TestCase("result", typeof(bool), true, "var result = KMethod3 Klass $12, 'fs', on, 6/1/2012;"), TestCase("result", typeof(double), date, "var result = KMethod4 Klass $12, 'fs', on, 6/1/2012;"), }; Parse(statements, true, i => { i.Context.Plugins.RegisterAll(); i.Context.Types.Register(typeof(Klass), null); var ltype = Lang.Helpers.LangTypeHelper.ConvertToLangTypeClass(typeof(Klass)); i.Context.Symbols.Global.DefineVariable("klass", ltype); i.Context.Memory.SetValue("klass", new LClass(new Klass())); }); }