Пример #1
0
        public void ChangingAndChangedBothFireInitially()
        {
            LifeCycleButton button   = new LifeCycleButton();
            bool            changing = false;
            bool            changed  = false;

            button.ParentChanging += (_, __) => changing = true;
            button.ParentChanged  += (_, __) =>
            {
                if (!changing)
                {
                    Assert.Fail("Attached fired before changing");
                }

                changed = true;
            };

            Assert.AreEqual(0, button.changing);
            Assert.AreEqual(0, button.changed);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);

            button.Parent = new Button();

            Assert.IsTrue(changing);
            Assert.IsTrue(changed);
            Assert.AreEqual(1, button.changing);
            Assert.AreEqual(1, button.changed);
        }
Пример #2
0
        public void ChangingArgsAreSetCorrectly()
        {
            LifeCycleButton button = new LifeCycleButton();

            Assert.IsNull(button.Parent);
            var firstParent = new Button();

            button.Parent = firstParent;

            Assert.AreEqual(button.LastParentChangingEventArgs.NewParent, firstParent);
            Assert.IsNull(button.LastParentChangingEventArgs.OldParent);

            var secondParent = new Button();

            button.Parent = secondParent;
            Assert.AreEqual(button.LastParentChangingEventArgs.OldParent, firstParent);
            Assert.AreEqual(button.LastParentChangingEventArgs.NewParent, secondParent);

            button.Parent = null;
            Assert.AreEqual(button.LastParentChangingEventArgs.OldParent, secondParent);
            Assert.AreEqual(button.LastParentChangingEventArgs.NewParent, null);

            Assert.AreEqual(3, button.changing);
            Assert.AreEqual(3, button.changed);
        }
Пример #3
0
        public void ChangingAndChangedBothFireForParentOverride()
        {
            LifeCycleButton button   = new LifeCycleButton();
            bool            changing = false;
            bool            changed  = false;

            button.Parent = new Button();

            button.ParentChanging += (_, __) => changing = true;
            button.ParentChanged  += (_, __) =>
            {
                if (!changing)
                {
                    Assert.Fail("Attached fired before changing");
                }

                changed = true;
            };

            Assert.IsFalse(changing);
            Assert.IsFalse(changed);

            button.ParentOverride = new Button();

            Assert.IsTrue(changing);
            Assert.IsTrue(changed);
        }
Пример #4
0
        public void ChangingArgsAreSetCorrectly()
        {
            LifeCycleButton button = new LifeCycleButton();

            Assert.IsNull(button.Handler);
            var firstHandler = new HandlerStub();

            button.Handler = firstHandler;

            Assert.AreEqual(button.LastHandlerChangingEventArgs.NewHandler, firstHandler);
            Assert.IsNull(button.LastHandlerChangingEventArgs.OldHandler);

            var secondHandler = new HandlerStub();

            button.Handler = secondHandler;
            Assert.AreEqual(button.LastHandlerChangingEventArgs.OldHandler, firstHandler);
            Assert.AreEqual(button.LastHandlerChangingEventArgs.NewHandler, secondHandler);

            button.Handler = null;
            Assert.AreEqual(button.LastHandlerChangingEventArgs.OldHandler, secondHandler);
            Assert.AreEqual(button.LastHandlerChangingEventArgs.NewHandler, null);

            Assert.AreEqual(3, button.changing);
            Assert.AreEqual(3, button.changed);
        }
Пример #5
0
        public void BasicAttachMethods()
        {
            LifeCycleButton button = new LifeCycleButton();

            button.Handler = new HandlerStub();

            Assert.AreEqual(1, button.attaching);
            Assert.AreEqual(1, button.attached);
        }
Пример #6
0
        public void BasicDetachMethods(Type handlerType)
        {
            LifeCycleButton button = new LifeCycleButton();

            button.Handler = new HandlerStub();

            Assert.Zero(button.detaching);
            Assert.Zero(button.detached);

            if (handlerType != null)
            {
                button.Handler = (IViewHandler)Activator.CreateInstance(handlerType);
            }
            else
            {
                button.Handler = null;
            }

            Assert.AreEqual(1, button.detached);
            Assert.AreEqual(1, button.detaching);
        }
Пример #7
0
        public void ParentOverrideChangingArgsSendCorrectly()
        {
            LifeCycleButton button = new LifeCycleButton();

            Assert.IsNull(button.Parent);
            var firstParent = new Button();

            button.Parent = firstParent;

            Assert.AreEqual(button.LastParentChangingEventArgs.NewParent, firstParent);
            Assert.IsNull(button.LastParentChangingEventArgs.OldParent);

            var secondParent = new Button();

            button.ParentOverride = secondParent;
            Assert.AreEqual(button.LastParentChangingEventArgs.OldParent, firstParent);
            Assert.AreEqual(button.LastParentChangingEventArgs.NewParent, secondParent);

            button.ParentOverride = null;
            Assert.AreEqual(button.LastParentChangingEventArgs.OldParent, secondParent);
            Assert.AreEqual(button.LastParentChangingEventArgs.NewParent, firstParent);
        }