public void RibbonManagerWithTransactions()
        {
            IRibbonManager manager = new RibbonManager();

              IRibbonPage page1 = manager.DefaultCategory.Add("Page1");
              IRibbonGroup group1 = page1.Add("Group1");
              IRibbonButton button1 = group1.Add("Button1", null, RibbonButtonType.Large);

              Assert.AreEqual(1, manager.Categories.Count);
              Assert.AreEqual(1, manager.DefaultCategory.Pages.Count);
              Assert.AreEqual(1, page1.Groups.Count);
              Assert.AreEqual(1, group1.Buttons.Count);

              // Начинаем транзакцию.
              manager.BeginTransaction("Level 1");

              IRibbonCategory category2 = manager.Add("Category2");
              IRibbonPage page2 = manager.DefaultCategory.Add("Page2");
              IRibbonGroup group2 = page1.Add("Group2");
              IRibbonButton button2 = group1.Add("Button2", null, RibbonButtonType.Large);

              Assert.AreEqual(2, manager.Categories.Count);
              Assert.AreEqual(2, manager.DefaultCategory.Pages.Count);
              Assert.AreEqual(2, page1.Groups.Count);
              Assert.AreEqual(2, group1.Buttons.Count);

              // Отменяем транзакцию.
              manager.RollbackTransaction("Level 1");

              Assert.AreEqual(1, manager.Categories.Count);
              Assert.AreEqual(1, manager.DefaultCategory.Pages.Count);
              Assert.AreEqual(1, page1.Groups.Count);
              Assert.AreEqual(1, group1.Buttons.Count);
        }
        public void RibbonManagerSimple()
        {
            IRibbonManager manager = new RibbonManager();

              IRibbonCategory customCategory = manager.Add("Custom Category");
              IRibbonPage page = customCategory.Add("Page");
              IRibbonGroup group = page.Add("Group");
              IRibbonButton button = group.Add("Button", null, RibbonButtonType.Large);

              Assert.AreEqual(2, manager.Categories.Count);
              Assert.AreEqual(1, customCategory.Pages.Count);
              Assert.AreEqual(1, page.Groups.Count);
              Assert.AreEqual(1, group.Buttons.Count);

              Assert.IsInstanceOfType(manager.Categories[0], typeof(RibbonDefaultCategory));
              Assert.IsInstanceOfType(manager.Categories[1], typeof(RibbonCustomCategory));
        }