Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/DefaultFailureMechanismTreeNodeInfoTest.cs =================================================================== diff -u -r3df200a3968f49aa1098764c284a7fafb2a14de4 -r330586b375b0f21f7aa9f650827ffe29572a2f03 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/DefaultFailureMechanismTreeNodeInfoTest.cs (.../DefaultFailureMechanismTreeNodeInfoTest.cs) (revision 3df200a3968f49aa1098764c284a7fafb2a14de4) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/DefaultFailureMechanismTreeNodeInfoTest.cs (.../DefaultFailureMechanismTreeNodeInfoTest.cs) (revision 330586b375b0f21f7aa9f650827ffe29572a2f03) @@ -28,44 +28,6 @@ private const int contextMenuRelevancyIndex = 0; [Test] - public void ContextMenuStrip_FailureMechanismIsNotRelevant_ReturnStripWithOnlyRelevancyExpandAndCollapseAllNodes() - { - // Setup - using (var treeView = new TreeViewControl()) - using (var contextMenuStrip = new ContextMenuStrip()) - { - var mocks = new MockRepository(); - var failureMechanism = mocks.Stub(); - failureMechanism.IsRelevant = false; - - var assessmentSection = mocks.Stub(); - - var context = new SimpleFailureMechanismContext(failureMechanism, assessmentSection); - - var builder = mocks.Stub(); - builder.Expect(b => b.AddCustomItem(null)).IgnoreArguments().Return(builder); - builder.Expect(b => b.AddSeparator()).Return(builder); - builder.Expect(b => b.AddExpandAllItem()).Return(builder); - builder.Expect(b => b.AddCollapseAllItem()).Return(builder); - builder.Expect(b => b.Build()).Return(contextMenuStrip); - - var provider = mocks.Stub(); - provider.Expect(p => p.Get(context, treeView)).Return(builder); - mocks.ReplayAll(); - - var treeNodeInfo = new DefaultFailureMechanismTreeNodeInfo( - null, null, provider); - - // Call - ContextMenuStrip result = treeNodeInfo.ContextMenuStrip(context, assessmentSection, treeView); - - // Assert - Assert.AreSame(contextMenuStrip, result); - mocks.VerifyAll(); - } - } - - [Test] public void ContextMenuStrip_ClickOnIsRelevantItem_MakeFailureMechanismRelevant() { // Setup Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r3df200a3968f49aa1098764c284a7fafb2a14de4 -r330586b375b0f21f7aa9f650827ffe29572a2f03 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 3df200a3968f49aa1098764c284a7fafb2a14de4) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 330586b375b0f21f7aa9f650827ffe29572a2f03) @@ -176,7 +176,7 @@ } [Test] - public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() + public void ContextMenuStrip_FailureMechanismIsRelevant_CallsContextMenuBuilderMethods() { // Setup var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); @@ -211,9 +211,42 @@ } [Test] - public void ContextMenuStrip_Always_IsRelevantEnabledAddCalculationGroupAddCalculationItemDisabled() + public void ContextMenuStrip_FailureMechanismIsNotRelevant_CallsContextMenuBuilderMethods() { // Setup + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism + { + IsRelevant = false + }; + var assessmentSection = mocksRepository.Stub(); + var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); + + var guiMock = mocksRepository.StrictMock(); + var treeViewControlMock = mocksRepository.StrictMock(); + var menuBuilderMock = mocksRepository.StrictMock(); + + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + + guiMock.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControlMock)).Return(menuBuilderMock); + mocksRepository.ReplayAll(); + + plugin.Gui = guiMock; + + // Call + info.ContextMenuStrip(failureMechanismContext, null, treeViewControlMock); + + // Assert + mocksRepository.VerifyAll(); + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsRelevant_IsRelevantEnabledAddCalculationGroupAddCalculationItemDisabled() + { + // Setup using (var treeView = new TreeViewControl()) { var assessmentSection = mocksRepository.Stub(); @@ -245,7 +278,7 @@ } [Test] - public void ContextMenuStrip_ClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() + public void ContextMenuStrip_FailureMechanismIsRelevantAndClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() { // Setup var failureMechanismObserver = mocksRepository.Stub(); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismPlaceholderTreeNodeInfoTest.cs =================================================================== diff -u -r3df200a3968f49aa1098764c284a7fafb2a14de4 -r330586b375b0f21f7aa9f650827ffe29572a2f03 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismPlaceholderTreeNodeInfoTest.cs (.../FailureMechanismPlaceholderTreeNodeInfoTest.cs) (revision 3df200a3968f49aa1098764c284a7fafb2a14de4) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismPlaceholderTreeNodeInfoTest.cs (.../FailureMechanismPlaceholderTreeNodeInfoTest.cs) (revision 330586b375b0f21f7aa9f650827ffe29572a2f03) @@ -229,7 +229,7 @@ } [Test] - public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() + public void ContextMenuStrip_FailureMechanismIsRelevant_CallsContextMenuBuilderMethods() { // Setup using (var treeView = new TreeViewControl()) @@ -276,12 +276,54 @@ } [Test] - public void ContextMenuStrip_Always_IsRelevantEnabledCalculateAllAndClearAllItemDisabled() + public void ContextMenuStrip_FailureMechanismIsNotRelevant_CallsContextMenuBuilderMethods() { // Setup using (var treeView = new TreeViewControl()) { + var failureMechanism = new FailureMechanismPlaceholder("A") + { + IsRelevant = false + }; var assessmentSection = mocks.Stub(); + var context = new FailureMechanismPlaceholderContext(failureMechanism, assessmentSection); + + var gui = mocks.StrictMock(); + var menuBuilderMock = mocks.StrictMock(); + + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + + gui.Expect(cmp => cmp.Get(context, treeView)).Return(menuBuilderMock); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + + mocks.ReplayAll(); + + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + plugin.Gui = gui; + + // Call + info.ContextMenuStrip(context, assessmentSection, treeView); + } + // Assert + mocks.VerifyAll(); + } + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsRelevant_IsRelevantEnabledCalculateAllAndClearAllItemDisabled() + { + // Setup + using (var treeView = new TreeViewControl()) + { + var assessmentSection = mocks.Stub(); var failureMechanism = new FailureMechanismPlaceholder("A"); var context = new FailureMechanismPlaceholderContext(failureMechanism, assessmentSection); @@ -325,7 +367,7 @@ } [Test] - public void ContextMenuStrip_ClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() + public void ContextMenuStrip_FailureMechanismIsRelevantAndClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() { // Setup var failureMechanismObserver = mocks.Stub(); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r3df200a3968f49aa1098764c284a7fafb2a14de4 -r330586b375b0f21f7aa9f650827ffe29572a2f03 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismContextTreeNodeInfoTest.cs (.../PipingFailureMechanismContextTreeNodeInfoTest.cs) (revision 3df200a3968f49aa1098764c284a7fafb2a14de4) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismContextTreeNodeInfoTest.cs (.../PipingFailureMechanismContextTreeNodeInfoTest.cs) (revision 330586b375b0f21f7aa9f650827ffe29572a2f03) @@ -447,7 +447,7 @@ } [Test] - public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() + public void ContextMenuStrip_FailureMechanismIsRelevant_CallsContextMenuBuilderMethods() { // Setup var pipingFailureMechanism = new PipingFailureMechanism(); @@ -487,6 +487,40 @@ } [Test] + public void ContextMenuStrip_FailureMechanismIsNotRelevant_CallsContextMenuBuilderMethods() + { + // Setup + var pipingFailureMechanism = new PipingFailureMechanism + { + IsRelevant = false + }; + var assessmentSection = mocks.Stub(); + var pipingFailureMechanismContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSection); + + var gui = mocks.StrictMock(); + var treeViewControl = mocks.StrictMock(); + var menuBuilder = mocks.StrictMock(); + + menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.Build()).Return(null); + + gui.Expect(cmp => cmp.Get(pipingFailureMechanismContext, treeViewControl)).Return(menuBuilder); + + mocks.ReplayAll(); + + plugin.Gui = gui; + + // Call + info.ContextMenuStrip(pipingFailureMechanismContext, null, treeViewControl); + + // Assert + mocks.VerifyAll(); + } + + [Test] public void ContextMenuStrip_ClickOnValidateAllItem_ValidateAllChildCalculations() { // Setup @@ -579,7 +613,7 @@ } [Test] - public void ContextMenuStrip_ClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() + public void ContextMenuStrip_FailureMechanismIsRelevantAndClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() { // Setup var failureMechanismObserver = mocks.Stub();