Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructureDataSynchronizationServiceTest.cs =================================================================== diff -u -rc964c048005d93b097a1e6a817dace95b293040f -r7618e47c7ff0d09102d56e2c25545f57a4269352 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructureDataSynchronizationServiceTest.cs (.../ClosingStructureDataSynchronizationServiceTest.cs) (revision c964c048005d93b097a1e6a817dace95b293040f) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructureDataSynchronizationServiceTest.cs (.../ClosingStructureDataSynchronizationServiceTest.cs) (revision 7618e47c7ff0d09102d56e2c25545f57a4269352) @@ -72,13 +72,16 @@ failureMechanism.CalculationsGroup.Children.Add(calculation3); // Call - IEnumerable> affectedItems = ClosingStructuresDataSynchronizationService.ClearAllCalculationOutput(failureMechanism); + IEnumerable affectedItems = ClosingStructuresDataSynchronizationService.ClearAllCalculationOutput(failureMechanism); // Assert - foreach (StructuresCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast>()) + // Note: To make sure the clear is performed regardless of what is done with + // the return result, no ToArray() should not be called before these assertions: + foreach (StructuresCalculation calculation in failureMechanism.Calculations.Cast>()) { Assert.IsNull(calculation.Output); } + CollectionAssert.AreEqual(new[] { calculation1, @@ -87,22 +90,6 @@ } [Test] - public void ClearCalculationOutput_WithCalculation_ClearsOutput() - { - // Setup - var calculation = new StructuresCalculation - { - Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0) - }; - - // Call - calculation.ClearOutput(); - - // Assert - Assert.IsNull(calculation.Output); - } - - [Test] public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_WithoutFailureMechanism_ThrowsArgumentNullException() { // Call @@ -148,11 +135,14 @@ IEnumerable> affectedItems = ClosingStructuresDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); // Assert + // Note: To make sure the clear is performed regardless of what is done with + // the return result, no ToArray() should not be called before these assertions: foreach (StructuresCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast>()) { Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(calculation.Output); } + CollectionAssert.AreEqual(new[] { calculation1, @@ -193,10 +183,13 @@ IEnumerable> affectedItems = ClosingStructuresDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); // Assert + // Note: To make sure the clear is performed regardless of what is done with + // the return result, no ToArray() should not be called before these assertions: foreach (StructuresCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast>()) { Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); } + CollectionAssert.AreEqual(new[] { calculation1, @@ -230,10 +223,13 @@ IEnumerable> affectedItems = ClosingStructuresDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); // Assert + // Note: To make sure the clear is performed regardless of what is done with + // the return result, no ToArray() should not be called before these assertions: foreach (StructuresCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast>()) { Assert.IsNull(calculation.Output); } + CollectionAssert.AreEqual(new[] { calculation1, @@ -280,23 +276,23 @@ ClosingStructuresFailureMechanism failureMechanism = CreateFullyConfiguredFailureMechanism(); // Call - IObservable[] observables = ClosingStructuresDataSynchronizationService.ClearReferenceLineDependentData(failureMechanism).ToArray(); + IEnumerable observables = ClosingStructuresDataSynchronizationService.ClearReferenceLineDependentData(failureMechanism); // Assert - Assert.AreEqual(4, observables.Length); - + // Note: To make sure the clear is performed regardless of what is done with + // the return result, no ToArray() should not be called before these assertions: CollectionAssert.IsEmpty(failureMechanism.Sections); CollectionAssert.IsEmpty(failureMechanism.SectionResults); - CollectionAssert.Contains(observables, failureMechanism); - CollectionAssert.IsEmpty(failureMechanism.CalculationsGroup.Children); - CollectionAssert.Contains(observables, failureMechanism.CalculationsGroup); - CollectionAssert.IsEmpty(failureMechanism.ForeshoreProfiles); - CollectionAssert.Contains(observables, failureMechanism.ForeshoreProfiles); - CollectionAssert.IsEmpty(failureMechanism.ClosingStructures); - CollectionAssert.Contains(observables, failureMechanism.ClosingStructures); + + IObservable[] array = observables.ToArray(); + Assert.AreEqual(4, array.Length); + CollectionAssert.Contains(array, failureMechanism); + CollectionAssert.Contains(array, failureMechanism.CalculationsGroup); + CollectionAssert.Contains(array, failureMechanism.ForeshoreProfiles); + CollectionAssert.Contains(array, failureMechanism.ClosingStructures); } private ClosingStructuresFailureMechanism CreateFullyConfiguredFailureMechanism()