Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -ree395d64328db8f999b871e80491399a0a65e844 -r675f279fbcb7a1204f43c7de50be373cde96ca2e --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision ee395d64328db8f999b871e80491399a0a65e844) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 675f279fbcb7a1204f43c7de50be373cde96ca2e) @@ -162,8 +162,8 @@ var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); var groupContext = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(failureMechanism.WaveConditionsCalculationGroup, - failureMechanism, - assessmentSection); + failureMechanism, + assessmentSection); // Call var children = info.ChildNodeObjects(groupContext); @@ -187,16 +187,16 @@ failureMechanism.WaveConditionsCalculationGroup.Children.Add(childGroup); var nodeData = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(failureMechanism.WaveConditionsCalculationGroup, - failureMechanism, - assessmentSection); + failureMechanism, + assessmentSection); // Call var children = info.ChildNodeObjects(nodeData).ToArray(); // Assert Assert.AreEqual(failureMechanism.WaveConditionsCalculationGroup.Children.Count, children.Length); Assert.AreSame(calculationItem, children[0]); - var returnedCalculationGroupContext = (GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext)children[1]; + var returnedCalculationGroupContext = (GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext) children[1]; Assert.AreSame(childGroup, returnedCalculationGroupContext.WrappedData); Assert.AreSame(failureMechanism, returnedCalculationGroupContext.FailureMechanism); } @@ -1284,8 +1284,8 @@ var assessmentSection = mocks.Stub(); var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(failureMechanism.WaveConditionsCalculationGroup, - failureMechanism, - assessmentSection); + failureMechanism, + assessmentSection); using (var treeViewControl = new TreeViewControl()) { @@ -1334,8 +1334,8 @@ var assessmentSection = mocks.Stub(); var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(failureMechanism.WaveConditionsCalculationGroup, - failureMechanism, - assessmentSection); + failureMechanism, + assessmentSection); using (var treeViewControl = new TreeViewControl()) { @@ -1379,6 +1379,39 @@ } } + [Test] + public void OnNodeRemoved_ParentIsWaveConditionsCalculationGroupContainingGroup_RemoveGroupAndNotifyObservers() + { + // Setup + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var group = new CalculationGroup(); + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); + + var nodeData = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(group, + failureMechanism, + assessmentSection); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(group); + var parentNodeData = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(failureMechanism.WaveConditionsCalculationGroup, + failureMechanism, + assessmentSection); + parentNodeData.Attach(observer); + + // Precondition + Assert.IsTrue(info.CanRemove(nodeData, parentNodeData)); + + // Call + info.OnNodeRemoved(nodeData, parentNodeData); + + // Assert + CollectionAssert.DoesNotContain(failureMechanism.WaveConditionsCalculationGroup.Children, group); + } + private static GrassCoverErosionOutwardsWaveConditionsCalculation GetValidCalculation() { var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation