Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        public void AllocateObjectWithSizeUsingSend()
        {
            BaseBehavior behavior = new BaseBehavior();

            IObject obj = (IObject)behavior.Send("allocate:", 10);

            Assert.IsNotNull(obj);
            Assert.AreEqual(10, obj.Size);
        }
Ejemplo n.º 3
0
        public void HasAllocateMethod()
        {
            BaseBehavior behavior = new BaseBehavior();

            IMethod allocateMethod = (IMethod)behavior.Send("lookup:", "allocate:");

            Assert.IsNotNull(allocateMethod);
            Assert.IsInstanceOfType(allocateMethod, typeof(BaseAllocateMethod));
        }
Ejemplo n.º 4
0
        public void HasDelegateMethod()
        {
            BaseBehavior behavior = new BaseBehavior();

            IMethod delegateMethod = (IMethod)behavior.Send("lookup:", "delegated");

            Assert.IsNotNull(delegateMethod);
            Assert.IsInstanceOfType(delegateMethod, typeof(BaseDelegateMethod));
        }
Ejemplo n.º 5
0
        public void HasBehaviorMethod()
        {
            BaseBehavior behavior = new BaseBehavior();

            IMethod behaviorMethod = (IMethod)behavior.Send("lookup:", "vtable");

            Assert.IsNotNull(behaviorMethod);
            Assert.IsInstanceOfType(behaviorMethod, typeof(BaseBehaviorMethod));
        }
Ejemplo n.º 6
0
        public void HasAddMethodMethod()
        {
            BaseBehavior behavior = new BaseBehavior();

            IMethod addMethodMethod = (IMethod)behavior.Send("lookup:", "methodAt:put:");

            Assert.IsNotNull(addMethodMethod);
            Assert.IsInstanceOfType(addMethodMethod, typeof(BaseAddMethodMethod));
        }
Ejemplo n.º 7
0
        public void HasLookupMethod()
        {
            BaseBehavior behavior = new BaseBehavior();

            IMethod lookupMethod = (IMethod)behavior.Send("lookup:", "lookup:");

            Assert.IsNotNull(lookupMethod);
            Assert.IsInstanceOfType(lookupMethod, typeof(BaseLookupMethod));
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        public void LookupUnknownMethodUsingSendReturnsNull()
        {
            BaseBehavior behavior = new BaseBehavior();

            Assert.IsNull(behavior.Send("lookup:", "unknown"));
        }
Ejemplo n.º 11
0
        public void ShouldRaiseExceptionIfMethodIsNullWhenAddMethod()
        {
            BaseBehavior behavior = new BaseBehavior();

            behavior.Send("methodAt:put:", "aMethod", null);
        }
Ejemplo n.º 12
0
        public void ShouldRaiseIfSelectorIsNullWhenAddMethod()
        {
            BaseBehavior behavior = new BaseBehavior();

            behavior.Send("methodAt:put:", null, new MockMethod());
        }
Ejemplo n.º 13
0
        public void ShouldGetBehavior()
        {
            BaseBehavior behavior = new BaseBehavior();

            Assert.AreEqual(behavior.Behavior, behavior.Send("vtable"));
        }