Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Calculation/CalculationGroupExtensionsTest.cs =================================================================== diff -u -rf64dceaa32788bad28dcf09f4a1c3150595f1327 -rce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Calculation/CalculationGroupExtensionsTest.cs (.../CalculationGroupExtensionsTest.cs) (revision f64dceaa32788bad28dcf09f4a1c3150595f1327) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Calculation/CalculationGroupExtensionsTest.cs (.../CalculationGroupExtensionsTest.cs) (revision ce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b) @@ -221,5 +221,83 @@ Assert.IsTrue(hasOutput); mocks.VerifyAll(); } + + [Test] + public void GetAllChildrenRecursive_EmptyGroup_ReturnEmpty() + { + // Setup + var group = new CalculationGroup(); + + // Call + IEnumerable children = group.GetAllChildrenRecursive(); + + // Assert + CollectionAssert.IsEmpty(children); + } + + + [Test] + public void GetAllChildrenRecursive_GroupWithNestedGroupsWithCalculations_ReturnAllNestedGroupsAndCalculations() + { + // Setup + var mocks = new MockRepository(); + var calculation1 = mocks.Stub(); + var calculation2 = mocks.Stub(); + var calculation3 = mocks.Stub(); + var calculation4 = mocks.Stub(); + mocks.ReplayAll(); + + var nestedChildGroup = new CalculationGroup + { + Children = + { + calculation3 + } + }; + + var childGroup1 = new CalculationGroup + { + Children = + { + calculation2 + } + }; + var childGroup2 = new CalculationGroup + { + Children = + { + nestedChildGroup, + calculation4 + } + }; + + var rootGroup = new CalculationGroup + { + Children = + { + calculation1, + childGroup1, + childGroup2 + } + }; + + var expectedChildren = new ICalculationBase[] + { + calculation1, + calculation2, + calculation3, + calculation4, + childGroup1, + childGroup2, + nestedChildGroup + }; + + // Call + IEnumerable children = rootGroup.GetAllChildrenRecursive(); + + // Assert + CollectionAssert.AreEquivalent(expectedChildren, children); + mocks.VerifyAll(); + } } } \ No newline at end of file