Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs =================================================================== diff -u -r5a6b6cb84b2749e56b70fe9f04a17fd954decc68 -rb0faaa0cb58090f64503985877b0912696c1117d --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision 5a6b6cb84b2749e56b70fe9f04a17fd954decc68) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision b0faaa0cb58090f64503985877b0912696c1117d) @@ -1476,6 +1476,166 @@ mocks.VerifyAll(); } + [Test] + public void ChildNodeObjects_FailureMechanismIsRelevant_ReturnResultFromConstructorMethod() + { + // Setup + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + var assessmentSection = mocks.Stub(); + + mocks.ReplayAll(); + + failureMechanism.IsRelevant = true; + + var resultIsRelevant = new[] + { + new object(), + 1.1 + }; + + var resultIsNotRelevant = new[] + { + 2.2, + new object() + }; + + var context = new TestFailureMechanismContext(failureMechanism, assessmentSection); + var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo(mechanismContext => resultIsRelevant, mechanismContext => resultIsNotRelevant, null, null); + + // Call + object[] children = treeNodeInfo.ChildNodeObjects(context); + + // Assert + CollectionAssert.AreEqual(resultIsRelevant, children); + + mocks.VerifyAll(); + } + + [Test] + public void ChildNodeObjects_FailureMechanismIsNotRelevant_ReturnResultFromConstructorMethod() + { + // Setup + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + var assessmentSection = mocks.Stub(); + + mocks.ReplayAll(); + + failureMechanism.IsRelevant = false; + + var resultIsRelevant = new[] + { + new object(), + 1.1 + }; + + var resultIsNotRelevant = new[] + { + 2.2, + new object() + }; + + var context = new TestFailureMechanismContext(failureMechanism, assessmentSection); + var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo(mechanismContext => resultIsRelevant, mechanismContext => resultIsNotRelevant, null, null); + + // Call + object[] children = treeNodeInfo.ChildNodeObjects(context); + + // Assert + CollectionAssert.AreEqual(resultIsNotRelevant, children); + + mocks.VerifyAll(); + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsRelevant_ReturnResultFromConstructorMethod() + { + // Setup + using (var treeView = new TreeViewControl()) + using (var contextMenuStripRelevant = new ContextMenuStrip()) + using (var contextMenuStripNotRelevant = new ContextMenuStrip()) + { + 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, + (mechanismContext, parent, treeViewControl) => + { + Assert.AreEqual(context, mechanismContext); + Assert.AreEqual(assessmentSection, parent); + Assert.AreEqual(treeView, treeViewControl); + + return contextMenuStripRelevant; + }, + (mechanismContext, parent, treeViewControl) => + { + Assert.AreEqual(context, mechanismContext); + Assert.AreEqual(assessmentSection, parent); + Assert.AreEqual(treeView, treeViewControl); + + return contextMenuStripNotRelevant; + }); + + // Call + ContextMenuStrip result = treeNodeInfo.ContextMenuStrip(context, assessmentSection, treeView); + + // Assert + Assert.AreSame(contextMenuStripRelevant, result); + mocks.VerifyAll(); + } + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsNotRelevant_ReturnResultFromConstructorMethod() + { + // Setup + using (var treeView = new TreeViewControl()) + using (var contextMenuStripRelevant = new ContextMenuStrip()) + using (var contextMenuStripNotRelevant = new ContextMenuStrip()) + { + 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, + (mechanismContext, parent, treeViewControl) => + { + Assert.AreEqual(context, mechanismContext); + Assert.AreEqual(assessmentSection, parent); + Assert.AreEqual(treeView, treeViewControl); + + return contextMenuStripRelevant; + }, + (mechanismContext, parent, treeViewControl) => + { + Assert.AreEqual(context, mechanismContext); + Assert.AreEqual(assessmentSection, parent); + Assert.AreEqual(treeView, treeViewControl); + + return contextMenuStripNotRelevant; + }); + + // Call + ContextMenuStrip result = treeNodeInfo.ContextMenuStrip(context, assessmentSection, treeView); + + // Assert + Assert.AreSame(contextMenuStripNotRelevant, result); + mocks.VerifyAll(); + } + } + # endregion # region Nested types