public void AddAndLookupMethod() { BaseBehavior behavior = new BaseBehavior(); MockMethod method = new MockMethod(); behavior.Send("methodAt:put:", "aMethod", method); Assert.AreEqual(method, behavior.Lookup("aMethod")); Assert.AreEqual(method, behavior.Send("lookup:", "aMethod")); }
public void AddMethodAndLookup() { BaseBehavior baseBehavior = new BaseBehavior(); IBehavior behavior = baseBehavior.CreateDelegated(); IMethod method = new MockMethod(); behavior.Send("methodAt:put:", "aMethod", method); IMethod retrievedMethod = (IMethod)behavior.Send("lookup:", "aMethod"); Assert.IsNotNull(retrievedMethod); Assert.AreEqual(method, retrievedMethod); }
public void SendMessage() { BaseObject obj = new BaseObject(); BaseBehavior behavior = new BaseBehavior(); obj.Behavior = behavior; MockMethod method = new MockMethod(); Assert.IsFalse(method.Executed); behavior.Send("methodAt:put:", "aMethod", method); Assert.IsNull(obj.Send("aMethod", null)); Assert.IsTrue(method.Executed); }
public void RedefineAddMethod() { BaseBehavior baseBehavior = new BaseBehavior(); IBehavior behavior = baseBehavior.CreateDelegated(); IMethod method = new BaseAddMethodMethod(); behavior.Send("methodAt:put:", "methodAt:put:", method); IMethod newMethod = (IMethod)behavior.Send("lookup:", "methodAt:put:"); Assert.IsNotNull(newMethod); Assert.AreEqual(method, newMethod); IMethod anotherMethod = new MockMethod(); behavior.Send("methodAt:put:", "anotherMethod", anotherMethod); newMethod = (IMethod)behavior.Send("lookup:", "anotherMethod"); Assert.AreEqual(anotherMethod, newMethod); }