public void Menu_ProcessCmdKey_ParentMenuItemPopupHandlerRemovesChild_ReturnsFalse() { var child = new MenuItem { Shortcut = Shortcut.CtrlA }; var parent = new MenuItem("text", new MenuItem[] { child }); var message = new Message(); parent.Popup += (sender, e) => { parent.MenuItems.Remove(child); }; Assert.False(parent.ProcessCmdKey(ref message, Keys.Control | Keys.A)); }
public void Menu_ProcessCmdKey_MenuItemParent_ReturnsExpected(MenuItem parent, MenuItem child, bool expectedResult, int expectedChildOnClickCallCount, int expectedChildOnPopupCallCount, int expectedParentOnClickCallCount, int expectedParentOnPopupCallCount) { int childOnClickCallCount = 0; child.Click += (sender, e) => { childOnClickCallCount++; Assert.Same(child, sender); Assert.Equal(EventArgs.Empty, e); }; int childOnPopupCallCount = 0; child.Popup += (sender, e) => { childOnPopupCallCount++; Assert.Same(child, sender); Assert.Equal(EventArgs.Empty, e); }; int parentOnClickCallCount = 0; parent.Click += (sender, e) => { parentOnClickCallCount++; Assert.Same(parent, sender); Assert.Equal(EventArgs.Empty, e); }; int parentOnPopupCallCount = 0; parent.Popup += (sender, e) => { parentOnPopupCallCount++; Assert.Same(parent, sender); Assert.Equal(EventArgs.Empty, e); }; var message = new Message(); Assert.Equal(expectedResult, parent.ProcessCmdKey(ref message, Keys.Control | Keys.A)); Assert.Equal(expectedChildOnClickCallCount, childOnClickCallCount); Assert.Equal(expectedChildOnPopupCallCount, childOnPopupCallCount); Assert.Equal(expectedParentOnClickCallCount, parentOnClickCallCount); Assert.Equal(expectedParentOnPopupCallCount, parentOnPopupCallCount); }