Index: Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs =================================================================== diff -u -r31b9794f47ec6d8f8debb5d1b558782853cb7c26 -r9a163773601ac59d2e4dbdf245e074a38c21a866 --- Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 31b9794f47ec6d8f8debb5d1b558782853cb7c26) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 9a163773601ac59d2e4dbdf245e074a38c21a866) @@ -905,7 +905,7 @@ } /// - /// Looks up a localized string similar to Faalkansruimte (per jaar) [-]. + /// Looks up a localized string similar to Faalkansruimte [1/jaar]. /// public static string FailureMechanismContributionView_GridColumn_ProbabilitySpace { get { Index: Core/Common/src/Core.Common.Gui/Properties/Resources.resx =================================================================== diff -u -r31b9794f47ec6d8f8debb5d1b558782853cb7c26 -r9a163773601ac59d2e4dbdf245e074a38c21a866 --- Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision 31b9794f47ec6d8f8debb5d1b558782853cb7c26) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision 9a163773601ac59d2e4dbdf245e074a38c21a866) @@ -911,7 +911,7 @@ ..\Resources\OptionsHS.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Faalkansruimte (per jaar) [-] + Faalkansruimte [1/jaar] Toegestane bijdrage aan faalkans [%] Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismContributionNodePresenter.cs =================================================================== diff -u -r75aa4fefacf584d5172dc3bdffd348b0aacb05a4 -r9a163773601ac59d2e4dbdf245e074a38c21a866 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismContributionNodePresenter.cs (.../FailureMechanismContributionNodePresenter.cs) (revision 75aa4fefacf584d5172dc3bdffd348b0aacb05a4) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismContributionNodePresenter.cs (.../FailureMechanismContributionNodePresenter.cs) (revision 9a163773601ac59d2e4dbdf245e074a38c21a866) @@ -1,8 +1,8 @@ -using System.Windows.Forms; +using System.Drawing; +using System.Windows.Forms; using Core.Common.Controls.Swf.TreeViewControls; using Core.Common.Gui; using Ringtoets.Common.Forms.NodePresenters; -using Ringtoets.Integration.Data; using Ringtoets.Integration.Data.Contribution; using Ringtoets.Integration.Forms.Properties; @@ -15,6 +15,7 @@ protected override void UpdateNode(ITreeNode parentNode, ITreeNode node, FailureMechanismContribution nodeData) { node.Text = Data.Properties.Resources.FailureMechanismContribution_DisplayName; + node.ForegroundColor = Color.FromKnownColor(KnownColor.ControlText); node.Image = Resources.GenericInputOutputIcon; } @@ -23,6 +24,8 @@ return contextMenuBuilderProvider .Get(node) .AddOpenItem() + .AddSeparator() + .AddExportItem() .Build(); } } Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/FailureMechanismContributionNodePresenterTest.cs =================================================================== diff -u --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/FailureMechanismContributionNodePresenterTest.cs (revision 0) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/FailureMechanismContributionNodePresenterTest.cs (revision 9a163773601ac59d2e4dbdf245e074a38c21a866) @@ -0,0 +1,106 @@ +using System; +using System.Drawing; +using Core.Common.Controls.Swf.TreeViewControls; +using Core.Common.Gui; +using Core.Common.Gui.ContextMenu; +using Core.Common.Gui.Properties; +using Core.Common.TestUtil; +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data; +using Ringtoets.Integration.Data.Contribution; +using Ringtoets.Integration.Forms.NodePresenters; + +namespace Ringtoets.Integration.Forms.Test.NodePresenters +{ + [TestFixture] + public class FailureMechanismContributionNodePresenterTest + { + private MockRepository mockRepository; + + [SetUp] + public void SetUp() + { + mockRepository = new MockRepository(); + } + + [Test] + public void Constructor_NoMenuBuilderProvider_ArgumentNullException() + { + // Call + TestDelegate test = () => new FailureMechanismContributionNodePresenter(null); + + // Assert + var message = Assert.Throws(test).Message; + StringAssert.StartsWith(Resources.NodePresenter_ContextMenuBuilderProvider_required, message); + StringAssert.EndsWith("contextMenuBuilderProvider", message); + } + + [Test] + public void Constructor_WithParamsSet_NewInstance() + { + // Setup + var contextMenuBuilderProviderMock = mockRepository.StrictMock(); + + mockRepository.ReplayAll(); + + // Call + var nodePresenter = new FailureMechanismContributionNodePresenter(contextMenuBuilderProviderMock); + + // Assert + Assert.IsInstanceOf(nodePresenter); + Assert.IsNull(nodePresenter.TreeView); + Assert.AreEqual(typeof(FailureMechanismContribution), nodePresenter.NodeTagType); + + mockRepository.VerifyAll(); + } + + [Test] + public void UpdateNode_WithData_InitializeNode() + { + // Setup + var projectNode = mockRepository.Stub(); + var assessmentSection = mockRepository.Stub(new IFailureMechanism[] { }, 0, 0); + var contextMenuBuilderProviderMock = mockRepository.StrictMock(); + + mockRepository.ReplayAll(); + + var nodePresenter = new FailureMechanismContributionNodePresenter(contextMenuBuilderProviderMock); + + // Call + nodePresenter.UpdateNode(null, projectNode, assessmentSection); + + // Assert + Assert.AreEqual(Data.Properties.Resources.FailureMechanismContribution_DisplayName, projectNode.Text); + Assert.AreEqual(Color.FromKnownColor(KnownColor.ControlText), projectNode.ForegroundColor); + TestHelper.AssertImagesAreEqual(Properties.Resources.GenericInputOutputIcon, projectNode.Image); + } + + [Test] + public void GetContextMenu_Always_CallsContextMenuBuilderMethods() + { + // Setup + var contextMenuBuilderProviderMock = mockRepository.StrictMock(); + var assessmentSection = mockRepository.Stub(new IFailureMechanism[] { }, 0, 0); + var menuBuilderMock = mockRepository.StrictMock(); + var nodeMock = mockRepository.StrictMock(); + + menuBuilderMock.Expect(mb => mb.AddOpenItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + + contextMenuBuilderProviderMock.Expect(cmp => cmp.Get(nodeMock)).Return(menuBuilderMock); + + mockRepository.ReplayAll(); + + var nodePresenter = new FailureMechanismContributionNodePresenter(contextMenuBuilderProviderMock); + + // Call + nodePresenter.GetContextMenu(nodeMock, assessmentSection); + + // Assert + mockRepository.VerifyAll(); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj =================================================================== diff -u -r9f57710e6e75471cc3d44e55e514c48909b19dc4 -r9a163773601ac59d2e4dbdf245e074a38c21a866 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision 9f57710e6e75471cc3d44e55e514c48909b19dc4) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision 9a163773601ac59d2e4dbdf245e074a38c21a866) @@ -59,6 +59,7 @@ +