Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -r6115bb70abacf9aed9119d43fc9430eff235da6a -rf1c9115205cc613a4b07f9865014785ec780da79 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 6115bb70abacf9aed9119d43fc9430eff235da6a) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision f1c9115205cc613a4b07f9865014785ec780da79) @@ -107,6 +107,15 @@ .Build() }; + yield return new TreeNodeInfo + { + Text = structure => structure.Name, + Image = structure => RingtoetsCommonFormsResources.StructuresIcon, + ContextMenuStrip = (structure, parentData, treeViewControl) => Gui.Get(structure, treeViewControl) + .AddPropertiesItem() + .Build() + }; + yield return new TreeNodeInfo { Text = inputContext => ClosingStructuresFormsResources.ClosingStructuresInputContext_NodeDisplayName, Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj =================================================================== diff -u -r6115bb70abacf9aed9119d43fc9430eff235da6a -rf1c9115205cc613a4b07f9865014785ec780da79 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj (.../Ringtoets.ClosingStructures.Forms.Test.csproj) (revision 6115bb70abacf9aed9119d43fc9430eff235da6a) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj (.../Ringtoets.ClosingStructures.Forms.Test.csproj) (revision f1c9115205cc613a4b07f9865014785ec780da79) @@ -74,6 +74,7 @@ + Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructureTreeNodeInfoTest.cs =================================================================== diff -u --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructureTreeNodeInfoTest.cs (revision 0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructureTreeNodeInfoTest.cs (revision f1c9115205cc613a4b07f9865014785ec780da79) @@ -0,0 +1,160 @@ +// Copyright (C) Stichting Deltares 2016. 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.Base.Geometry; +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.ClosingStructures.Data; +using Ringtoets.ClosingStructures.Plugin; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Ringtoets.ClosingStructures.Forms.Test.TreeNodeInfos +{ + [TestFixture] + public class ClosingStructureTreeNodeInfoTest + { + private MockRepository mocks; + private ClosingStructuresPlugin plugin; + private TreeNodeInfo info; + + [SetUp] + public void SetUp() + { + mocks = new MockRepository(); + plugin = new ClosingStructuresPlugin(); + info = plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(ClosingStructure)); + } + + [TearDown] + public void TearDown() + { + plugin.Dispose(); + mocks.VerifyAll(); + } + + [Test] + public void Initialized_Always_ExpectedPropertiesSet() + { + // Setup + mocks.ReplayAll(); + + // Assert + Assert.AreEqual(typeof(ClosingStructure), info.TagType); + Assert.IsNotNull(info.Text); + Assert.IsNotNull(info.Image); + Assert.IsNotNull(info.ContextMenuStrip); + Assert.IsNull(info.ChildNodeObjects); + Assert.IsNull(info.ForeColor); + Assert.IsNull(info.EnsureVisibleOnCreate); + 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_ReturnNameOfStructure() + { + // Setup + mocks.ReplayAll(); + string name = "very nice name!"; + ClosingStructure structure = CreateSimpleClosingStructure(name); + + // Call + string text = info.Text(structure); + + // Assert + Assert.AreEqual(name, text); + } + + [Test] + public void Text_Always_ReturnStructuresIcon() + { + // Setup + mocks.ReplayAll(); + + // Call + Image image = info.Image(null); + + // Assert + TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.StructuresIcon, image); + } + + [Test] + public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() + { + // Setup + var menuBuilderMock = mocks.StrictMock(); + menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + + using (var treeViewControl = new TreeViewControl()) + { + ClosingStructure nodeData = CreateSimpleClosingStructure("A"); + + var guiMock = mocks.StrictMock(); + guiMock.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilderMock); + mocks.ReplayAll(); + + plugin.Gui = guiMock; + + // Call + info.ContextMenuStrip(nodeData, null, treeViewControl); + } + + // Assert + // Assert expectancies are called in TearDown() + } + + private static ClosingStructure CreateSimpleClosingStructure(string name) + { + return new ClosingStructure(name, "1", new Point2D(1, 2), + 1.1, 2.2, + 3.3, 4.4, + 5.5, + 6.6, 7.7, + 8.8, 9.9, + 10.10, 11.11, + 12.12, 13.13, + 14.14, 15.15, + 16.16, 17.17, + 18.18, 19.19, + 20.20, + 21.21, + 22, + 23.23, + ClosingStructureType.FloodedCulvert); + } + } +} \ No newline at end of file Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs =================================================================== diff -u -r6115bb70abacf9aed9119d43fc9430eff235da6a -rf1c9115205cc613a4b07f9865014785ec780da79 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision 6115bb70abacf9aed9119d43fc9430eff235da6a) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision f1c9115205cc613a4b07f9865014785ec780da79) @@ -57,10 +57,11 @@ TreeNodeInfo[] treeNodeInfos = plugin.GetTreeNodeInfos().ToArray(); // Assert - Assert.AreEqual(6, treeNodeInfos.Length); + Assert.AreEqual(7, treeNodeInfos.Length); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructuresFailureMechanismContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(FailureMechanismSectionResultContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructuresContext))); + Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructure))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructuresCalculationGroupContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructuresCalculationContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructuresInputContext))); Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/TreeNodeInfos/HeightStructureTreeNodeInfoTest.cs =================================================================== diff -u -r240fbc1c83da30eae57a9dace4f4a136c8213437 -rf1c9115205cc613a4b07f9865014785ec780da79 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/TreeNodeInfos/HeightStructureTreeNodeInfoTest.cs (.../HeightStructureTreeNodeInfoTest.cs) (revision 240fbc1c83da30eae57a9dace4f4a136c8213437) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/TreeNodeInfos/HeightStructureTreeNodeInfoTest.cs (.../HeightStructureTreeNodeInfoTest.cs) (revision f1c9115205cc613a4b07f9865014785ec780da79) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.Drawing; using System.Linq; using Core.Common.Base.Geometry; using Core.Common.Controls.TreeView; @@ -88,7 +89,7 @@ // Setup mocks.ReplayAll(); string name = "very nice name!"; - var structure = CreateSimpleHeightStructure(name); + HeightStructure structure = CreateSimpleHeightStructure(name); // Call string text = info.Text(structure); @@ -98,13 +99,13 @@ } [Test] - public void Text_Always_ReturnHeightStructureIcon() + public void Text_Always_ReturnStructuresIcon() { // Setup mocks.ReplayAll(); // Call - var image = info.Image(null); + Image image = info.Image(null); // Assert TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.StructuresIcon, image); @@ -120,7 +121,7 @@ using (var treeViewControl = new TreeViewControl()) { - var nodeData = CreateSimpleHeightStructure("A"); + HeightStructure nodeData = CreateSimpleHeightStructure("A"); var guiMock = mocks.StrictMock(); guiMock.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilderMock); @@ -131,6 +132,7 @@ // Call info.ContextMenuStrip(nodeData, null, treeViewControl); } + // Assert // Assert expectancies are called in TearDown() }