Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs =================================================================== diff -u -rba310454172ed29499474b2f8b013fa0f0c523b8 -r5a6b6cb84b2749e56b70fe9f04a17fd954decc68 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision ba310454172ed29499474b2f8b013fa0f0c523b8) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision 5a6b6cb84b2749e56b70fe9f04a17fd954decc68) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Drawing; using System.Linq; using System.Windows.Forms; using Core.Common.Base; @@ -30,6 +31,7 @@ using NUnit.Extensions.Forms; using NUnit.Framework; using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.PresentationObjects; @@ -1363,6 +1365,119 @@ #endregion + # region CreateFailureMechanismContextTreeNodeInfo + + [Test] + public void CreateFailureMechanismContextTreeNodeInfo_Always_ExpectedPropertiesSet() + { + // Call + var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo>(null, null, null, null); + + // Assert + Assert.AreEqual(typeof(FailureMechanismContext), treeNodeInfo.TagType); + Assert.IsNotNull(treeNodeInfo.Text); + Assert.IsNotNull(treeNodeInfo.Image); + Assert.IsNotNull(treeNodeInfo.ForeColor); + Assert.IsNotNull(treeNodeInfo.ChildNodeObjects); + Assert.IsNotNull(treeNodeInfo.ContextMenuStrip); + Assert.IsNull(treeNodeInfo.EnsureVisibleOnCreate); + Assert.IsNull(treeNodeInfo.CanRename); + Assert.IsNull(treeNodeInfo.OnNodeRenamed); + Assert.IsNull(treeNodeInfo.CanRemove); + Assert.IsNull(treeNodeInfo.OnNodeRemoved); + Assert.IsNull(treeNodeInfo.CanCheck); + Assert.IsNull(treeNodeInfo.IsChecked); + Assert.IsNull(treeNodeInfo.OnNodeChecked); + Assert.IsNull(treeNodeInfo.CanDrag); + Assert.IsNull(treeNodeInfo.CanDrop); + Assert.IsNull(treeNodeInfo.CanInsert); + Assert.IsNull(treeNodeInfo.OnDrop); + } + + [Test] + public void Text_FailureMechanism_Always_ReturnsWrappedDataName() + { + // Setup + const string name = "A"; + + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + var assessmentSection = mocks.Stub(); + + failureMechanism.Stub(fm => fm.Name).Return(name); + + mocks.ReplayAll(); + + var context = new TestFailureMechanismContext(failureMechanism, assessmentSection); + var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo(null, null, null, null); + + // Call + string text = treeNodeInfo.Text(context); + + // Assert + Assert.AreEqual(name, text); + mocks.VerifyAll(); + } + + [Test] + public void Image_FailureMechanism_Always_ReturnsFailureMechanismIcon() + { + // Setup + var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo>(null, null, null, null); + + // Call + Image image = treeNodeInfo.Image(null); + + // Assert + TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.FailureMechanismIcon, image); + } + + [Test] + public void ForeColor_FailureMechanismIsRelevant_ReturnsControlText() + { + // Setup + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + failureMechanism.IsRelevant = true; + + var context = new TestFailureMechanismContext(failureMechanism, assessmentSection); + var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo(null, null, null, null); + + // Call + Color color = treeNodeInfo.ForeColor(context); + + // Assert + Assert.AreEqual(Color.FromKnownColor(KnownColor.ControlText), color); + mocks.VerifyAll(); + } + + [Test] + public void ForeColor_FailureMechanismIsNotRelevant_ReturnsGrayText() + { + // Setup + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + failureMechanism.IsRelevant = false; + + var context = new TestFailureMechanismContext(failureMechanism, assessmentSection); + var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo(null, null, null, null); + + // Call + Color color = treeNodeInfo.ForeColor(context); + + // Assert + Assert.AreEqual(Color.FromKnownColor(KnownColor.GrayText), color); + mocks.VerifyAll(); + } + + # endregion + # region Nested types private class TestCalculationGroupContext : Observable, ICalculationContext @@ -1420,6 +1535,11 @@ } } + private class TestFailureMechanismContext : FailureMechanismContext + { + public TestFailureMechanismContext(IFailureMechanism wrappedFailureMechanism, IAssessmentSection parent) : base(wrappedFailureMechanism, parent) { } + } + /// /// Type indicator for testing methods on . ///