Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs =================================================================== diff -u -rb0faaa0cb58090f64503985877b0912696c1117d -rb47c41dd3741ada477388e6c8a9224ecb66291e7 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision b0faaa0cb58090f64503985877b0912696c1117d) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision b47c41dd3741ada477388e6c8a9224ecb66291e7) @@ -25,10 +25,7 @@ using System.Windows.Forms; using Core.Common.Base; using Core.Common.Controls.TreeView; -using Core.Common.Gui.Commands; -using Core.Common.Gui.ContextMenu; using Core.Common.TestUtil; -using NUnit.Extensions.Forms; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; @@ -42,587 +39,8 @@ namespace Ringtoets.Common.Forms.Test.TreeNodeInfos { [TestFixture] - public class CalculationTreeNodeInfoFactoryTest : NUnitFormTest + public class CalculationTreeNodeInfoFactoryTest { - [Test] - public void AddCreateCalculationGroupItem_Always_CreatesDecoratedCalculationGroupItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - - mocks.ReplayAll(); - - var calculationGroup = new CalculationGroup(); - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddCreateCalculationGroupItem(menuBuilder, calculationGroup); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.CalculationGroup_Add_CalculationGroup, - RingtoetsFormsResources.CalculationGroup_Add_CalculationGroup_Tooltip, - RingtoetsFormsResources.AddFolderIcon); - } - - [Test] - public void AddCreateCalculationGroupItem_PerformClickOnCreatedItem_CalculationGroupAdded() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - - mocks.ReplayAll(); - - var calculationGroup = new CalculationGroup(); - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - CalculationTreeNodeInfoFactory.AddCreateCalculationGroupItem(menuBuilder, calculationGroup); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - // Assert - Assert.AreEqual(1, calculationGroup.Children.Count); - Assert.IsTrue(calculationGroup.Children[0] is CalculationGroup); - } - - [Test] - public void AddCreateCalculationItem_Always_CreatesDecoratedCalculationItem() - { - // Setup - var mocks = new MockRepository(); - var failureMechanism = mocks.Stub(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - - mocks.ReplayAll(); - - var calculationGroup = new CalculationGroup(); - var calculationGroupContext = new TestCalculationGroupContext(calculationGroup, failureMechanism); - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddCreateCalculationItem(menuBuilder, calculationGroupContext, null); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.CalculationGroup_Add_Calculation, - RingtoetsFormsResources.CalculationGroup_Add_Calculation_Tooltip, - RingtoetsFormsResources.FailureMechanismIcon); - } - - [Test] - public void AddCreateCalculationItem_PerformClickOnCreatedItem_AddCalculationMethodPerformed() - { - // Setup - var mocks = new MockRepository(); - var failureMechanism = mocks.Stub(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - - mocks.ReplayAll(); - - var counter = 0; - var calculationGroup = new CalculationGroup(); - var calculationGroupContext = new TestCalculationGroupContext(calculationGroup, failureMechanism); - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - CalculationTreeNodeInfoFactory.AddCreateCalculationItem(menuBuilder, calculationGroupContext, context => counter++); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - // Assert - Assert.AreEqual(1, counter); - } - - [Test] - public void AddClearAllCalculationOutputInGroupItem_GroupWithCalculationOutput_CreatesDecoratedAndEnabledClearItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithOutput = mocks.StrictMock(); - - calculationWithOutput.Expect(c => c.HasOutput).Return(true); - - mocks.ReplayAll(); - - var calculationGroup = new CalculationGroup - { - Children = - { - calculationWithOutput - } - }; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddClearAllCalculationOutputInGroupItem(menuBuilder, calculationGroup); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.Clear_all_output, - RingtoetsFormsResources.CalculationGroup_ClearOutput_ToolTip, - RingtoetsFormsResources.ClearIcon); - } - - [Test] - public void AddClearAllCalculationOutputInGroupItem_GroupWithoutCalculationOutput_CreatesDecoratedAndDisabledClearItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithoutOutput = mocks.StrictMock(); - - calculationWithoutOutput.Expect(c => c.HasOutput).Return(false); - - mocks.ReplayAll(); - - var calculationGroup = new CalculationGroup - { - Children = - { - calculationWithoutOutput - } - }; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddClearAllCalculationOutputInGroupItem(menuBuilder, calculationGroup); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.Clear_all_output, - RingtoetsFormsResources.CalculationGroup_ClearOutput_No_calculation_with_output_to_clear, - RingtoetsFormsResources.ClearIcon, - false); - } - - [Test] - public void AddClearAllCalculationOutputInGroupItem_PerformClickOnCreatedItemAndConfirmChange_CalculationOutputClearedAndObserversNotified() - { - var messageBoxText = ""; - var messageBoxTitle = ""; - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithOutput1 = mocks.StrictMock(); - var calculationWithOutput2 = mocks.StrictMock(); - var calculationWithoutOutput = mocks.StrictMock(); - - calculationWithOutput1.Stub(c => c.HasOutput).Return(true); - calculationWithOutput2.Stub(c => c.HasOutput).Return(true); - calculationWithoutOutput.Stub(c => c.HasOutput).Return(false); - - calculationWithOutput1.Expect(c => c.ClearOutput()); - calculationWithOutput1.Expect(c => c.NotifyObservers()); - calculationWithOutput2.Expect(c => c.ClearOutput()); - calculationWithOutput2.Expect(c => c.NotifyObservers()); - - mocks.ReplayAll(); - - DialogBoxHandler = (name, wnd) => - { - var messageBox = new MessageBoxTester(wnd); - messageBoxText = messageBox.Text; - messageBoxTitle = messageBox.Title; - - messageBox.ClickOk(); - }; - - var calculationGroup = new CalculationGroup - { - Children = - { - calculationWithOutput1, - new CalculationGroup - { - Children = - { - calculationWithOutput2, - calculationWithoutOutput - } - } - } - }; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - CalculationTreeNodeInfoFactory.AddClearAllCalculationOutputInGroupItem(menuBuilder, calculationGroup); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - // Assert - Assert.AreEqual(BaseResources.Confirm, messageBoxTitle); - Assert.AreEqual(RingtoetsFormsResources.CalculationGroup_ClearOutput_Are_you_sure_clear_all_output, messageBoxText); - - mocks.VerifyAll(); - } - - [Test] - public void AddClearAllCalculationOutputInGroupItem_PerformClickOnCreatedItemAndCancelChange_CalculationOutputNotCleared() - { - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithOutput1 = mocks.StrictMock(); - var calculationWithOutput2 = mocks.StrictMock(); - var calculationWithoutOutput = mocks.StrictMock(); - - calculationWithOutput1.Stub(c => c.HasOutput).Return(true); - calculationWithOutput2.Stub(c => c.HasOutput).Return(true); - calculationWithoutOutput.Stub(c => c.HasOutput).Return(false); - - mocks.ReplayAll(); - - DialogBoxHandler = (name, wnd) => - { - var messageBox = new MessageBoxTester(wnd); - - messageBox.ClickCancel(); - }; - - var calculationGroup = new CalculationGroup - { - Children = - { - calculationWithOutput1, - new CalculationGroup - { - Children = - { - calculationWithOutput2, - calculationWithoutOutput - } - } - } - }; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - CalculationTreeNodeInfoFactory.AddClearAllCalculationOutputInGroupItem(menuBuilder, calculationGroup); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - mocks.VerifyAll(); - } - - [Test] - public void AddPerformAllCalculationsInGroupItem_GroupWithCalculations_CreatesDecoratedAndEnabledPerformItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculation = mocks.StrictMock(); - - mocks.ReplayAll(); - - var calculationGroup = new CalculationGroup - { - Children = - { - calculation - } - }; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, null, null); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.Calculate_all, - RingtoetsFormsResources.CalculationGroup_CalculateAll_ToolTip, - RingtoetsFormsResources.CalculateAllIcon); - } - - [Test] - public void AddPerformAllCalculationsInGroupItem_GroupWithoutCalculations_CreatesDecoratedAndDisabledPerformItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - - mocks.ReplayAll(); - - var calculationGroup = new CalculationGroup(); - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, null, null); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.Calculate_all, - RingtoetsFormsResources.CalculationGroup_CalculateAll_No_calculations_to_run, - RingtoetsFormsResources.CalculateAllIcon, - false); - } - - [Test] - public void AddPerformAllCalculationsInGroupItem_PerformClickOnCreatedItem_PerformAllCalculationMethodPerformed() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculation = mocks.StrictMock(); - var failureMechanism = mocks.StrictMock(); - - mocks.ReplayAll(); - - var counter = 0; - var calculationGroup = new CalculationGroup - { - Children = - { - calculation - } - }; - - var calculationGroupContext = new TestCalculationGroupContext(calculationGroup, failureMechanism); - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl); - - CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, calculationGroupContext, (group, context) => counter++); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - // Assert - Assert.AreEqual(1, counter); - } - - [Test] - public void AddPerformCalculationItem_Always_CreatesPerformItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - - mocks.ReplayAll(); - - var calculation = new TestCalculation(); - - var menubuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculation, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddPerformCalculationItem(menubuilder, calculation, null, null); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menubuilder.Build(), 0, - RingtoetsFormsResources.Calculate, - RingtoetsFormsResources.Calculate_ToolTip, - RingtoetsFormsResources.CalculateIcon); - - mocks.VerifyAll(); - } - - [Test] - public void AddPerformCalculationItem_PerformClickOnCreatedItem_PerformCalculationMethod() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var failureMechanisMock = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - - mocks.ReplayAll(); - - var calculation = new TestCalculation(); - var testCalculationContext = new TestCalculationContext(calculation, failureMechanisMock); - - var counter = 0; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculation, treeViewControl); - CalculationTreeNodeInfoFactory.AddPerformCalculationItem(menuBuilder, calculation, testCalculationContext, (calc, context) => counter++); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - // Assert - Assert.AreEqual(1, counter); - mocks.VerifyAll(); - } - - [Test] - public void AddClearCalculationOutputItem_CalculationWithOutput_CreatesDecoratedAndEnabledClearItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithOutput = mocks.StrictMock(); - - calculationWithOutput.Expect(c => c.HasOutput).Return(true); - - mocks.ReplayAll(); - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.Clear_output, - RingtoetsFormsResources.Clear_output_ToolTip, - RingtoetsFormsResources.ClearIcon); - mocks.VerifyAll(); - } - - [Test] - public void AddClearCalculationOutputItem_CalculationWithoutOutput_CreatesDecoratedAndDisabledClearItem() - { - // Setup - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithOutput = mocks.StrictMock(); - - calculationWithOutput.Expect(c => c.HasOutput).Return(false); - - mocks.ReplayAll(); - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); - - // Call - CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); - - // Assert - TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, - RingtoetsFormsResources.Clear_output, - RingtoetsFormsResources.ClearOutput_No_output_to_clear, - RingtoetsFormsResources.ClearIcon, - false); - mocks.VerifyAll(); - } - - [Test] - public void AddClearCalculationOutputItem_PerformClickOnCreatedItemAndConfirmChange_CalculationOutputClearedAndObserversNotified() - { - var messageBoxText = ""; - var messageBoxTitle = ""; - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithOutput = mocks.StrictMock(); - - calculationWithOutput.Stub(c => c.HasOutput).Return(true); - - calculationWithOutput.Expect(c => c.ClearOutput()); - calculationWithOutput.Expect(c => c.NotifyObservers()); - - mocks.ReplayAll(); - - DialogBoxHandler = (name, wnd) => - { - var messageBox = new MessageBoxTester(wnd); - messageBoxText = messageBox.Text; - messageBoxTitle = messageBox.Title; - - messageBox.ClickOk(); - }; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); - - CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - // Assert - Assert.AreEqual(BaseResources.Confirm, messageBoxTitle); - Assert.AreEqual(RingtoetsFormsResources.Calculation_ContextMenuStrip_Are_you_sure_clear_output, messageBoxText); - - mocks.VerifyAll(); - } - - [Test] - public void AddClearCalculationOutputItem_PerformClickOnCreatedItemAndCancelChange_CalculationOutputNotCleared() - { - var mocks = new MockRepository(); - var applicationFeatureCommandHandler = mocks.Stub(); - var exportImportHandler = mocks.Stub(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); - var calculationWithOutput = mocks.StrictMock(); - - calculationWithOutput.Stub(c => c.HasOutput).Return(true); - - mocks.ReplayAll(); - - DialogBoxHandler = (name, wnd) => - { - var messageBox = new MessageBoxTester(wnd); - - messageBox.ClickCancel(); - }; - - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); - - CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); - var contextMenuItem = menuBuilder.Build().Items[0]; - - // Call - contextMenuItem.PerformClick(); - - mocks.VerifyAll(); - } - # region CreateCalculationGroupContextTreeNodeInfo [Test]