Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r7206def3cee84d518d3f7ea1b76e05e3163b8aea -r6833a6c92024007966c7fd99a955b234653f2ef8 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 7206def3cee84d518d3f7ea1b76e05e3163b8aea) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 6833a6c92024007966c7fd99a955b234653f2ef8) @@ -49,7 +49,8 @@ private GrassCoverErosionInwardsGuiPlugin plugin; private TreeNodeInfo info; - private const int contextMenuRelevancyIndex = 1; + private const int contextMenuRelevancyIndexWhenRelevant = 1; + private const int contextMenuRelevancyIndexWhenNotRelevant = 0; [SetUp] public void SetUp() @@ -268,7 +269,7 @@ var menu = info.ContextMenuStrip(failureMechanismContext, assessmentSection, treeView); // Assert - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRelevancyIndex, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRelevancyIndexWhenRelevant, RingtoetsCommonFormsResources.FailureMechanismContextMenuStrip_Is_relevant, RingtoetsCommonFormsResources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip, RingtoetsCommonFormsResources.Checkbox_ticked); @@ -310,11 +311,47 @@ var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); // Call - contextMenu.Items[contextMenuRelevancyIndex].PerformClick(); + contextMenu.Items[contextMenuRelevancyIndexWhenRelevant].PerformClick(); // Assert Assert.IsFalse(failureMechanism.IsRelevant); mocksRepository.VerifyAll(); } + + [Test] + public void ContextMenuStrip_FailureMechanismIsNotRelevantAndClickOnIsRelevantItem_MakeFailureMechanismRelevant() + { + // Setup + var failureMechanismObserver = mocksRepository.Stub(); + failureMechanismObserver.Expect(o => o.UpdateObserver()); + + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism + { + IsRelevant = false + }; + failureMechanism.Attach(failureMechanismObserver); + + var assessmentSection = mocksRepository.Stub(); + var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); + + var treeViewControl = mocksRepository.StrictMock(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + + var gui = mocksRepository.StrictMock(); + gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + + mocksRepository.ReplayAll(); + + plugin.Gui = gui; + + var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + + // Call + contextMenu.Items[contextMenuRelevancyIndexWhenNotRelevant].PerformClick(); + + // Assert + Assert.IsTrue(failureMechanism.IsRelevant); + mocksRepository.VerifyAll(); + } } } \ No newline at end of file