Example #1
0
		public void Add2MenuItemsMergeOrderSet()
		{
			MainMenu first = new MainMenu();
			first.MenuItems.Add(new MenuItem(MenuMerge.Add, 1, Shortcut.None, "First", null,
				null, null, null));

			MainMenu second = new MainMenu();
			second.MenuItems.Add(new MenuItem(MenuMerge.Add, 0, Shortcut.None, "Second", null,
				null, null, null));

			MenuExtender menuExtender = new MenuExtender();
			MainMenu result = menuExtender.MergeMenus(first, second);
			Assert.AreEqual(2, result.MenuItems.Count);
			Assert.AreEqual("Second", result.MenuItems[0].Text);
			Assert.AreEqual("First", result.MenuItems[1].Text);
		}
Example #2
0
		public void MergeOnlyOneClickEventSubscribed()
		{
			using (MessageTest messageTest = new MessageTest())
			{
				messageTest.m_nFirstOneClicked = 0;
				messageTest.m_nSecondOneClicked = 0;

				MenuExtender menuExtender = new MenuExtender();
				menuExtender.MessageMediator = new Mediator();
				menuExtender.MessageMediator.AddColleague(messageTest);

				MainMenu first = new MainMenu();
				MenuItem firstOne = new MenuItem("FirstOne");
				first.MenuItems.Add(new MenuItem(MenuMerge.MergeItems, 0, Shortcut.None, "First", null,
					null, null, new MenuItem[] { firstOne }));
				menuExtender.SetCommandId(firstOne, "FirstOne");

				MainMenu second = new MainMenu();
				MenuItem secondOne = new MenuItem("SecondOne");
				second.MenuItems.Add(new MenuItem(MenuMerge.MergeItems, 0, Shortcut.None, "Second", null,
					null, null, new MenuItem[] { secondOne }));
				menuExtender.SetCommandId(secondOne, "SecondOne");

				MainMenu result = menuExtender.MergeMenus(first, second);
				result.MenuItems[0].MenuItems[0].PerformClick();
				result.MenuItems[0].MenuItems[1].PerformClick();

				Assert.AreEqual(1, messageTest.m_nFirstOneClicked);
				Assert.AreEqual(1, messageTest.m_nSecondOneClicked);
				// Clean up the mess now.
				menuExtender.MessageMediator.RemoveColleague(messageTest);
				menuExtender.MessageMediator.Dispose();
				menuExtender.MessageMediator = null;
			}
		}
Example #3
0
		public void Merge2MenusLargerSecondMenu()
		{
			MainMenu first = new MainMenu();
			first.MenuItems.Add(new MenuItem(MenuMerge.MergeItems, 0, Shortcut.None, "First", null,
				null, null, new MenuItem[] { new MenuItem("FirstOne") }));

			MainMenu second = new MainMenu();
			second.MenuItems.Add(new MenuItem(MenuMerge.MergeItems, 0, Shortcut.None, "Second", null,
				null, null, new MenuItem[] { new MenuItem("SecondOne") }));
			second.MenuItems.Add(new MenuItem(MenuMerge.MergeItems, 1, Shortcut.None, "Second2", null,
				null, null, new MenuItem[] { new MenuItem("Second2One") }));

			MenuExtender menuExtender = new MenuExtender();
			MainMenu result = menuExtender.MergeMenus(first, second);
			Assert.AreEqual(2, result.MenuItems.Count);
			Assert.AreEqual("First", result.MenuItems[0].Text);
			Assert.AreEqual("Second2", result.MenuItems[1].Text);
			Assert.AreEqual(2, result.MenuItems[0].MenuItems.Count);
			Assert.AreEqual("FirstOne", result.MenuItems[0].MenuItems[0].Text);
			Assert.AreEqual("SecondOne", result.MenuItems[0].MenuItems[1].Text);
			Assert.AreEqual(1, result.MenuItems[1].MenuItems.Count);
			Assert.AreEqual("Second2One", result.MenuItems[1].MenuItems[0].Text);
		}