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); }
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); }
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); }
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); }
public void BasicAttachMethods() { LifeCycleButton button = new LifeCycleButton(); button.Handler = new HandlerStub(); Assert.AreEqual(1, button.attaching); Assert.AreEqual(1, button.attached); }
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); }
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); }