public void DefineAndCreateAgent() { Machine machine = new Machine(); BaseClass bclass = new BaseClass("Agent", machine); bclass.IsAgentClass = true; object result = bclass.NewObject(); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(AgentObject)); AgentObject agent = (AgentObject)result; Assert.AreEqual(bclass, agent.Behavior); }
public void DefineObjectMethod() { Machine machine = new Machine(); BaseClass cls = new BaseClass("MyClass", machine); BaseObject bo = (BaseObject)cls.NewObject(); Assert.AreEqual(cls, bo.Behavior); IMethod method = new Method(cls, "mymethod"); bo.DefineObjectMethod(method); Assert.AreNotEqual(cls, bo.Behavior); Assert.IsNotNull(bo.Behavior.GetInstanceMethod("mymethod")); Assert.AreEqual(method, bo.Behavior.GetInstanceMethod("mymethod")); Assert.AreNotEqual(cls, method.Behavior); Assert.AreEqual(bo.Behavior, method.Behavior); Assert.IsTrue(bo.IsPrototype); Assert.AreEqual(true, bo.SendMessage(machine, "isPrototype", null)); }