public void DefineMethod() { IClass type = new BaseClass("String", null); IClass klass = new BaseClass("MyClass", null); IMethod getname = new FuncMethod(type, (obj, context, arguments) => ((IObject)obj).GetValue("name")); klass.DefineMethod("getName", getname); var result = klass.GetMethod("getName"); Assert.IsNotNull(result); Assert.AreEqual(type, result.Type); }
public void DefineAndCallFuncMethod() { IMethod method = new FuncMethod(null, (obj, context, args) => ((string)obj).Length); Assert.IsNull(method.Type); Assert.AreEqual(3, method.Call("foo", null, null)); }
public void Setup() { IClass type = new BaseClass("String", null); this.type = new BaseClass("MyClass", null); IMethod getname = new FuncMethod(null, (obj, context, arguments) => ((IObject)obj).GetValue("name")); this.type.DefineVariable("name", type); this.type.DefineMethod("getName", getname); }
public void RaiseIfMethodIsAlreadyDefined() { IClass type = new BaseClass("String", null); IClass klass = new BaseClass("MyClass", null); IMethod getname = new FuncMethod(type, (obj, context, arguments) => ((IObject)obj).GetValue("name")); klass.DefineMethod("getName", getname); klass.DefineMethod("getName", getname); }