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 AllocateObjectWithSizeUsingSend() { BaseBehavior behavior = new BaseBehavior(); IObject obj = (IObject)behavior.Send("allocate:", 10); Assert.IsNotNull(obj); Assert.AreEqual(10, obj.Size); }
public void HasAllocateMethod() { BaseBehavior behavior = new BaseBehavior(); IMethod allocateMethod = (IMethod)behavior.Send("lookup:", "allocate:"); Assert.IsNotNull(allocateMethod); Assert.IsInstanceOfType(allocateMethod, typeof(BaseAllocateMethod)); }
public void HasDelegateMethod() { BaseBehavior behavior = new BaseBehavior(); IMethod delegateMethod = (IMethod)behavior.Send("lookup:", "delegated"); Assert.IsNotNull(delegateMethod); Assert.IsInstanceOfType(delegateMethod, typeof(BaseDelegateMethod)); }
public void HasBehaviorMethod() { BaseBehavior behavior = new BaseBehavior(); IMethod behaviorMethod = (IMethod)behavior.Send("lookup:", "vtable"); Assert.IsNotNull(behaviorMethod); Assert.IsInstanceOfType(behaviorMethod, typeof(BaseBehaviorMethod)); }
public void HasAddMethodMethod() { BaseBehavior behavior = new BaseBehavior(); IMethod addMethodMethod = (IMethod)behavior.Send("lookup:", "methodAt:put:"); Assert.IsNotNull(addMethodMethod); Assert.IsInstanceOfType(addMethodMethod, typeof(BaseAddMethodMethod)); }
public void HasLookupMethod() { BaseBehavior behavior = new BaseBehavior(); IMethod lookupMethod = (IMethod)behavior.Send("lookup:", "lookup:"); Assert.IsNotNull(lookupMethod); Assert.IsInstanceOfType(lookupMethod, typeof(BaseLookupMethod)); }
public void CreateBehaviorSendingDelegateMessage() { BaseBehavior baseBehavior = new BaseBehavior(); IBehavior behavior = (IBehavior)baseBehavior.Send("delegated"); Assert.IsNotNull(behavior); Assert.IsNotNull(behavior.Behavior); Assert.IsInstanceOfType(behavior, typeof(BaseBehavior)); Assert.IsInstanceOfType(behavior.Behavior, typeof(BaseBehavior)); Assert.AreEqual(baseBehavior, behavior.Behavior); Assert.IsNotNull(behavior.Parent); Assert.IsNotNull(behavior.Methods); Assert.AreEqual(behavior.Parent, baseBehavior); }
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 LookupUnknownMethodUsingSendReturnsNull() { BaseBehavior behavior = new BaseBehavior(); Assert.IsNull(behavior.Send("lookup:", "unknown")); }
public void ShouldRaiseExceptionIfMethodIsNullWhenAddMethod() { BaseBehavior behavior = new BaseBehavior(); behavior.Send("methodAt:put:", "aMethod", null); }
public void ShouldRaiseIfSelectorIsNullWhenAddMethod() { BaseBehavior behavior = new BaseBehavior(); behavior.Send("methodAt:put:", null, new MockMethod()); }
public void ShouldGetBehavior() { BaseBehavior behavior = new BaseBehavior(); Assert.AreEqual(behavior.Behavior, behavior.Send("vtable")); }