Fisheye: Tag 078878de01a4c060d2366b7406fe5236940827ad refers to a dead (removed) revision in file `Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PresentationObjects/ClosingStructureContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 8587508c66a1bc0938465e97cf365cc1ef254f53 refers to a dead (removed) revision in file `Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PresentationObjects/ClosingStructuresContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Ringtoets.ClosingStructures.Forms.csproj =================================================================== diff -u -r8587508c66a1bc0938465e97cf365cc1ef254f53 -r078878de01a4c060d2366b7406fe5236940827ad --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Ringtoets.ClosingStructures.Forms.csproj (.../Ringtoets.ClosingStructures.Forms.csproj) (revision 8587508c66a1bc0938465e97cf365cc1ef254f53) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Ringtoets.ClosingStructures.Forms.csproj (.../Ringtoets.ClosingStructures.Forms.csproj) (revision 078878de01a4c060d2366b7406fe5236940827ad) @@ -40,7 +40,7 @@ Properties\GlobalAssembly.cs - + Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -re8162b5b22781fbe2258f99aa208e38f3ead9133 -r078878de01a4c060d2366b7406fe5236940827ad --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision e8162b5b22781fbe2258f99aa208e38f3ead9133) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 078878de01a4c060d2366b7406fe5236940827ad) @@ -82,7 +82,7 @@ .Build() }; - yield return new TreeNodeInfo() + yield return new TreeNodeInfo() { Text = context => RingtoetsCommonFormsResources.StructuresCollection_DisplayName, Image = context => RingtoetsCommonFormsResources.GeneralFolderIcon, @@ -152,7 +152,7 @@ return new ArrayList { new FailureMechanismSectionsContext(failureMechanism, assessmentSection), - new ClosingStructureContext(failureMechanism.ClosingStructures, assessmentSection), + new ClosingStructuresContext(failureMechanism.ClosingStructures, assessmentSection), new CommentContext(failureMechanism) }; } Fisheye: Tag 078878de01a4c060d2366b7406fe5236940827ad refers to a dead (removed) revision in file `Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PresentationObjects/ClosingStructureContextTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 8587508c66a1bc0938465e97cf365cc1ef254f53 refers to a dead (removed) revision in file `Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PresentationObjects/ClosingStructuresContextTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj =================================================================== diff -u -r8587508c66a1bc0938465e97cf365cc1ef254f53 -r078878de01a4c060d2366b7406fe5236940827ad --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj (.../Ringtoets.ClosingStructures.Forms.Test.csproj) (revision 8587508c66a1bc0938465e97cf365cc1ef254f53) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj (.../Ringtoets.ClosingStructures.Forms.Test.csproj) (revision 078878de01a4c060d2366b7406fe5236940827ad) @@ -57,12 +57,12 @@ Properties\GlobalAssembly.cs - + - + Fisheye: Tag 078878de01a4c060d2366b7406fe5236940827ad refers to a dead (removed) revision in file `Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructureContextTreeNodeInfoTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructureFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r5586f52de59cc0f9a350161b00cb9e63dcda0b5c -r078878de01a4c060d2366b7406fe5236940827ad --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructureFailureMechanismContextTreeNodeInfoTest.cs (.../ClosingStructureFailureMechanismContextTreeNodeInfoTest.cs) (revision 5586f52de59cc0f9a350161b00cb9e63dcda0b5c) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructureFailureMechanismContextTreeNodeInfoTest.cs (.../ClosingStructureFailureMechanismContextTreeNodeInfoTest.cs) (revision 078878de01a4c060d2366b7406fe5236940827ad) @@ -116,9 +116,9 @@ Assert.AreSame(failureMechanism, failureMechanismSectionsContext.WrappedData); Assert.AreSame(assessmentSectionMock, failureMechanismSectionsContext.ParentAssessmentSection); - var closingStructureContext = (ClosingStructureContext) inputsFolder.Contents[1]; - Assert.AreSame(failureMechanism.ClosingStructures, closingStructureContext.WrappedData); - Assert.AreSame(assessmentSectionMock, closingStructureContext.AssessmentSection); + var closingStructuresContext = (ClosingStructuresContext) inputsFolder.Contents[1]; + Assert.AreSame(failureMechanism.ClosingStructures, closingStructuresContext.WrappedData); + Assert.AreSame(assessmentSectionMock, closingStructuresContext.AssessmentSection); var commentContext = (CommentContext) inputsFolder.Contents[2]; Assert.AreSame(failureMechanism, commentContext.WrappedData); Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructuresContextTreeNodeInfoTest.cs =================================================================== diff -u --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructuresContextTreeNodeInfoTest.cs (revision 0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/TreeNodeInfos/ClosingStructuresContextTreeNodeInfoTest.cs (revision 078878de01a4c060d2366b7406fe5236940827ad) @@ -0,0 +1,234 @@ +// 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; +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.Forms.PresentationObjects; +using Ringtoets.ClosingStructures.Plugin; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.Properties; + +namespace Ringtoets.ClosingStructures.Forms.Test.TreeNodeInfos +{ + [TestFixture] + public class ClosingStructuresContextTreeNodeInfoTest + { + private ClosingStructuresPlugin plugin; + private TreeNodeInfo info; + + [SetUp] + public void SetUp() + { + plugin = new ClosingStructuresPlugin(); + info = plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(ClosingStructuresContext)); + } + + [TearDown] + public void TearDown() + { + plugin.Dispose(); + } + + [Test] + public void Initialized_Always_ExpectedPropertiesSet() + { + // Assert + Assert.AreEqual(typeof(ClosingStructuresContext), info.TagType); + Assert.IsNotNull(info.Text); + Assert.IsNotNull(info.Image); + Assert.IsNotNull(info.ForeColor); + Assert.IsNotNull(info.ChildNodeObjects); + Assert.IsNotNull(info.ContextMenuStrip); + 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_ReturnExpectedText() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var closingStructures = new ObservableList(); + + var closingStructuresContext = new ClosingStructuresContext(closingStructures, assessmentSection); + + // Call + string text = info.Text(closingStructuresContext); + + // Assert + const string expectedText = "Kunstwerken"; + Assert.AreEqual(expectedText, text); + mocks.VerifyAll(); + } + + [Test] + public void Image_Always_ReturnExpectedImage() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var closingStructures = new ObservableList(); + + var closingStructuresContext = new ClosingStructuresContext(closingStructures, assessmentSection); + + // Call + Image image = info.Image(closingStructuresContext); + + // Assert + TestHelper.AssertImagesAreEqual(Resources.GeneralFolderIcon, image); + mocks.VerifyAll(); + } + + [Test] + public void ForeColor_CollectionHasElementsEmpty_ReturnControlText() + { + // Setup + var mocks = new MockRepository(); + var asssessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var closingStructures = new ObservableList + { + CreateClosingStructure() + }; + + // Precondition + CollectionAssert.IsNotEmpty(closingStructures); + + var closingStructuresContext = new ClosingStructuresContext(closingStructures, asssessmentSection); + + // Call + Color color = info.ForeColor(closingStructuresContext); + + // Assert + Assert.AreEqual(Color.FromKnownColor(KnownColor.ControlText), color); + mocks.VerifyAll(); + } + + [Test] + public void ChildNodeObjects_Always_ReturnDikeProfiles() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + ClosingStructure closingStructure1 = CreateClosingStructure(); + ClosingStructure closingStructure2 = CreateClosingStructure(); + var closingStructures = new ObservableList + { + closingStructure1, + closingStructure2 + }; + + var closingStructuresContext = new ClosingStructuresContext(closingStructures, assessmentSection); + + // Call + var children = info.ChildNodeObjects(closingStructuresContext); + + // Assert + Assert.AreEqual(2, children.Length); + Assert.AreSame(closingStructure1, children.ElementAt(0)); + Assert.AreSame(closingStructure2, children.ElementAt(1)); + mocks.VerifyAll(); + } + + [Test] + public void ForeColor_CollectionIsEmpty_ReturnGrayText() + { + // Setup + var mocks = new MockRepository(); + var asssessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var closingStructures = new ObservableList(); + + // Precondition + CollectionAssert.IsEmpty(closingStructures); + + var closingStructuresContext = new ClosingStructuresContext(closingStructures, asssessmentSection); + + // Call + Color color = info.ForeColor(closingStructuresContext); + + // Assert + Assert.AreEqual(Color.FromKnownColor(KnownColor.GrayText), color); + mocks.VerifyAll(); + } + + [Test] + public void ContextMenuStrip_Always_CallsBuilder() + { + // Setup + var mocks = new MockRepository(); + var menuBuilderMock = mocks.StrictMock(); + menuBuilderMock.Expect(mb => mb.AddImportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + + using (var treeViewControl = new TreeViewControl()) + { + var gui = mocks.Stub(); + gui.Stub(g => g.Get(null, treeViewControl)).Return(menuBuilderMock); + + mocks.ReplayAll(); + + plugin.Gui = gui; + + // Call + info.ContextMenuStrip(null, null, treeViewControl); + } + // Assert + mocks.VerifyAll(); + } + + private static ClosingStructure CreateClosingStructure() + { + // Creation of closing structure object will be defined by issue WTI-590 + return null; + } + } +} Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs =================================================================== diff -u -r5586f52de59cc0f9a350161b00cb9e63dcda0b5c -r078878de01a4c060d2366b7406fe5236940827ad --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision 5586f52de59cc0f9a350161b00cb9e63dcda0b5c) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision 078878de01a4c060d2366b7406fe5236940827ad) @@ -60,7 +60,7 @@ Assert.AreEqual(4, 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(ClosingStructureContext))); + Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructuresContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ClosingStructuresCalculationGroupContext))); } }