Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs =================================================================== diff -u -r4525a4ee303197b44c943ba8fa9a4254a6fad199 -r3223cd5392fc823ae1460ac235a67a25233c9cd7 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision 4525a4ee303197b44c943ba8fa9a4254a6fad199) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision 3223cd5392fc823ae1460ac235a67a25233c9cd7) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections; using System.Collections.Generic; using System.Drawing; @@ -263,6 +264,13 @@ { Text = output => RingtoetsCommonFormsResources.CalculationOutput_DisplayName, Image = output => RingtoetsCommonFormsResources.GeneralOutputIcon, + ChildNodeObjects = OutputContextChildNodeObjects + }; + + yield return new TreeNodeInfo + { + Text = output => Resources.GrassCoverErosionInwardsOutput_DisplayName, + Image = output => RingtoetsCommonFormsResources.GeneralOutputIcon, ContextMenuStrip = (nodeData, parentData, treeViewControl) => Gui.Get(nodeData, treeViewControl) .AddPropertiesItem() .Build() @@ -894,6 +902,18 @@ #endregion + #region GrassCoverErosionInwardsOutputContext TreeNodeInfo + + private static object[] OutputContextChildNodeObjects(GrassCoverErosionInwardsOutputContext context) + { + return new object[] + { + context.WrappedData.ResultOutput + }; + } + + #endregion + #region Dike Profiles Importer private static FileFilterGenerator DikeProfileImporterFileFilterGenerator() Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.Designer.cs =================================================================== diff -u -r2c7c991c5f2f2ef73d6683daad93d07ddb73ad6c -r3223cd5392fc823ae1460ac235a67a25233c9cd7 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 2c7c991c5f2f2ef73d6683daad93d07ddb73ad6c) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 3223cd5392fc823ae1460ac235a67a25233c9cd7) @@ -82,6 +82,15 @@ } /// + /// Looks up a localized string similar to Sterkte berekening. + /// + internal static string GrassCoverErosionInwardsOutput_DisplayName { + get { + return ResourceManager.GetString("GrassCoverErosionInwardsOutput_DisplayName", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Er zijn geen dijkprofielen beschikbaar om berekeningen voor te genereren.. /// internal static string GrassCoverErosionInwardsPlugin_CreateGenerateCalculationsItem_NoDikeLocations_ToolTip { Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.resx =================================================================== diff -u -r2c7c991c5f2f2ef73d6683daad93d07ddb73ad6c -r3223cd5392fc823ae1460ac235a67a25233c9cd7 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 2c7c991c5f2f2ef73d6683daad93d07ddb73ad6c) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 3223cd5392fc823ae1460ac235a67a25233c9cd7) @@ -148,4 +148,7 @@ &Bijwerken dijkprofielen... + + Sterkte berekening + \ No newline at end of file Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/GrassCoverErosionInwardsPluginTest.cs =================================================================== diff -u -r4525a4ee303197b44c943ba8fa9a4254a6fad199 -r3223cd5392fc823ae1460ac235a67a25233c9cd7 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/GrassCoverErosionInwardsPluginTest.cs (.../GrassCoverErosionInwardsPluginTest.cs) (revision 4525a4ee303197b44c943ba8fa9a4254a6fad199) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/GrassCoverErosionInwardsPluginTest.cs (.../GrassCoverErosionInwardsPluginTest.cs) (revision 3223cd5392fc823ae1460ac235a67a25233c9cd7) @@ -96,7 +96,7 @@ TreeNodeInfo[] treeNodeInfos = plugin.GetTreeNodeInfos().ToArray(); // Assert - Assert.AreEqual(8, treeNodeInfos.Length); + Assert.AreEqual(9, treeNodeInfos.Length); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(GrassCoverErosionInwardsFailureMechanismContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(DikeProfilesContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(GrassCoverErosionInwardsCalculationGroupContext))); @@ -105,6 +105,7 @@ Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(FailureMechanismSectionResultContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(GrassCoverErosionInwardsInputContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(GrassCoverErosionInwardsOutputContext))); + Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(GrassCoverErosionInwardsResultOutput))); } } Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj =================================================================== diff -u -r4525a4ee303197b44c943ba8fa9a4254a6fad199 -r3223cd5392fc823ae1460ac235a67a25233c9cd7 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj) (revision 4525a4ee303197b44c943ba8fa9a4254a6fad199) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj) (revision 3223cd5392fc823ae1460ac235a67a25233c9cd7) @@ -77,6 +77,7 @@ + Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsOutputContextTreeNodeInfoTest.cs =================================================================== diff -u -r4525a4ee303197b44c943ba8fa9a4254a6fad199 -r3223cd5392fc823ae1460ac235a67a25233c9cd7 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsOutputContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsOutputContextTreeNodeInfoTest.cs) (revision 4525a4ee303197b44c943ba8fa9a4254a6fad199) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsOutputContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsOutputContextTreeNodeInfoTest.cs) (revision 3223cd5392fc823ae1460ac235a67a25233c9cd7) @@ -22,11 +22,13 @@ using System.Drawing; using System.Linq; using Core.Common.Controls.TreeView; -using Core.Common.Gui; -using Core.Common.Gui.ContextMenu; using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; +using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionInwards.Data.TestUtil; using Ringtoets.GrassCoverErosionInwards.Forms.PresentationObjects; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -64,10 +66,10 @@ Assert.IsNotNull(info.Text); Assert.IsNull(info.ForeColor); Assert.IsNotNull(info.Image); - Assert.IsNotNull(info.ContextMenuStrip); + Assert.IsNull(info.ContextMenuStrip); Assert.IsNull(info.EnsureVisibleOnCreate); Assert.IsNull(info.ExpandOnCreate); - Assert.IsNull(info.ChildNodeObjects); + Assert.IsNotNull(info.ChildNodeObjects); Assert.IsNull(info.CanRename); Assert.IsNull(info.OnNodeRenamed); Assert.IsNull(info.CanRemove); @@ -91,7 +93,7 @@ string text = info.Text(null); // Assert - Assert.AreEqual(RingtoetsCommonFormsResources.CalculationOutput_DisplayName, text); + Assert.AreEqual("Resultaat", text); } [Test] @@ -108,29 +110,26 @@ } [Test] - public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() + public void ChildNodeObjects_Always_ReturnCollectionWithOutputObject() { - // Setup - var menuBuilderMock = mocksRepository.StrictMock(); - using (mocksRepository.Ordered()) - { - menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); - menuBuilderMock.Expect(mb => mb.Build()).Return(null); - } + var assessmentSection = mocksRepository.Stub(); + mocksRepository.ReplayAll(); - using (var treeViewControl = new TreeViewControl()) - { - var gui = mocksRepository.Stub(); - gui.Stub(cmp => cmp.Get(null, treeViewControl)).Return(menuBuilderMock); - mocksRepository.ReplayAll(); + var output = new GrassCoverErosionInwardsOutput(new GrassCoverErosionInwardsResultOutput( + 0, true, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)), + new TestDikeHeightOutput(0.0), + new TestOvertoppingRateOutput(0)); - plugin.Gui = gui; + var context = new GrassCoverErosionInwardsOutputContext(output, new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); - // Call - info.ContextMenuStrip(null, null, treeViewControl); - } + // Call + object[] children = info.ChildNodeObjects(context).ToArray(); + // Assert - // Assert expectancies called in TearDown() + Assert.AreEqual(1, children.Length); + + var resultOutput = children[0] as GrassCoverErosionInwardsResultOutput; + Assert.AreSame(context.WrappedData.ResultOutput, resultOutput); } } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsResultOutputTreeNodeInfoTest.cs =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsResultOutputTreeNodeInfoTest.cs (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsResultOutputTreeNodeInfoTest.cs (revision 3223cd5392fc823ae1460ac235a67a25233c9cd7) @@ -0,0 +1,136 @@ +// Copyright (C) Stichting Deltares 2017. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Drawing; +using System.Linq; +using Core.Common.Controls.TreeView; +using Core.Common.Gui; +using Core.Common.Gui.ContextMenu; +using Core.Common.TestUtil; +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.GrassCoverErosionInwards.Data; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Ringtoets.GrassCoverErosionInwards.Plugin.Test.TreeNodeInfos +{ + [TestFixture] + public class GrassCoverErosionInwardsResultOutputTreeNodeInfoTest + { + private MockRepository mocks; + private GrassCoverErosionInwardsPlugin plugin; + private TreeNodeInfo info; + + [SetUp] + public void SetUp() + { + mocks = new MockRepository(); + plugin = new GrassCoverErosionInwardsPlugin(); + info = plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(GrassCoverErosionInwardsResultOutput)); + } + + [TearDown] + public void TearDown() + { + plugin.Dispose(); + mocks.VerifyAll(); + } + + [Test] + public void Initialized_Always_ExpectedPropertiesSet() + { + // Setup + mocks.ReplayAll(); + + // Assert + Assert.IsNotNull(info.Text); + Assert.IsNull(info.ForeColor); + Assert.IsNotNull(info.Image); + Assert.IsNotNull(info.ContextMenuStrip); + Assert.IsNull(info.EnsureVisibleOnCreate); + Assert.IsNull(info.ExpandOnCreate); + Assert.IsNull(info.ChildNodeObjects); + Assert.IsNull(info.CanRename); + Assert.IsNull(info.OnNodeRenamed); + Assert.IsNull(info.CanRemove); + Assert.IsNull(info.OnNodeRemoved); + Assert.IsNull(info.CanCheck); + Assert.IsNull(info.IsChecked); + Assert.IsNull(info.OnNodeChecked); + Assert.IsNull(info.CanDrag); + Assert.IsNull(info.CanDrop); + Assert.IsNull(info.CanInsert); + Assert.IsNull(info.OnDrop); + } + + [Test] + public void Text_Always_ReturnsFromResource() + { + // Setup + mocks.ReplayAll(); + + // Call + string text = info.Text(null); + + // Assert + Assert.AreEqual("Sterkte berekening", text); + } + + [Test] + public void Image_Always_ReturnsGeneralOutputIcon() + { + // Setup + mocks.ReplayAll(); + + // Call + Image image = info.Image(null); + + // Assert + TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.GeneralOutputIcon, image); + } + + [Test] + public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() + { + // Setup + var menuBuilderMock = mocks.StrictMock(); + using (mocks.Ordered()) + { + menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + } + + using (var treeViewControl = new TreeViewControl()) + { + var gui = mocks.Stub(); + gui.Stub(cmp => cmp.Get(null, treeViewControl)).Return(menuBuilderMock); + mocks.ReplayAll(); + + plugin.Gui = gui; + + // Call + info.ContextMenuStrip(null, null, treeViewControl); + } + // Assert + // Assert expectancies called in TearDown() + } + } +} \ No newline at end of file