Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingDataSynchronizationServiceTest.cs =================================================================== diff -u -rf1fa2338dda2747f6bb70e82b4527f7b5f1708bf -r716528adfed212743b359ecaf540a1027dbceb65 --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingDataSynchronizationServiceTest.cs (.../PipingDataSynchronizationServiceTest.cs) (revision f1fa2338dda2747f6bb70e82b4527f7b5f1708bf) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingDataSynchronizationServiceTest.cs (.../PipingDataSynchronizationServiceTest.cs) (revision 716528adfed212743b359ecaf540a1027dbceb65) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Ringtoets.Common.Data.Calculation; using Ringtoets.HydraRing.Data; using Ringtoets.Piping.Data; using Ringtoets.Piping.KernelWrapper.TestUtil; @@ -33,81 +34,61 @@ public class PipingDataSynchronizationServiceTest { [Test] - public void ClearAllCalculationOutput_FailureMechanismNull_ThrowsArgumentNullException() + public void ClearCalculationOutput_CalculationNull_ThrowsArgumentNullException() { // Call - TestDelegate call = () => PipingDataSynchronizationService.ClearAllCalculationOutput(null); + TestDelegate test = () => PipingDataSynchronizationService.ClearCalculationOutput(null); // Assert - var exception = Assert.Throws(call); - Assert.AreEqual("failureMechanism", exception.ParamName); + var exception = Assert.Throws(test); + Assert.AreEqual("calculation", exception.ParamName); } [Test] - public void ClearAllCalculationOutput_WithOutput_ClearsCalculationsOutputAndReturnsAffectedCalculations() + public void ClearCalculationOutput_WithCalculation_ClearsOutput() { // Setup - PipingFailureMechanism failureMechanism = new PipingFailureMechanism(); - var calculation1 = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput()) { Output = new TestPipingOutput() }; - var calculation2 = new PipingCalculation(new GeneralPipingInput()) - { - Output = new TestPipingOutput() - }; - - var calculation3 = new PipingCalculation(new GeneralPipingInput()); - - failureMechanism.CalculationsGroup.Children.Add(calculation1); - failureMechanism.CalculationsGroup.Children.Add(calculation2); - failureMechanism.CalculationsGroup.Children.Add(calculation3); - // Call - IEnumerable affectedItems = PipingDataSynchronizationService.ClearAllCalculationOutput(failureMechanism); + PipingDataSynchronizationService.ClearCalculationOutput(calculation); // Assert - foreach (PipingCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast()) - { - Assert.IsNull(calculation.Output); - } - CollectionAssert.AreEqual(new[] - { - calculation1, - calculation2 - }, affectedItems); + Assert.IsNull(calculation.Output); } [Test] - public void ClearCalculationOutput_CalculationNull_ThrowsArgumentNullException() + public void ClearAllCalculationOutput_FailureMechanismNull_ThrowsArgumentNullException() { // Call - TestDelegate test = () => PipingDataSynchronizationService.ClearCalculationOutput(null); + TestDelegate call = () => PipingDataSynchronizationService.ClearAllCalculationOutput(null); // Assert - var exception = Assert.Throws(test); - Assert.AreEqual("calculation", exception.ParamName); + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); } [Test] - public void ClearCalculationOutput_WithCalculation_ClearsOutput() + public void ClearAllCalculationOutput_WithVariousCalculations_ClearsCalculationsOutputAndReturnsAffectedCalculations() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()) - { - Output = new TestPipingOutput() - }; + PipingFailureMechanism failureMechanism = CreateFullyConfiguredFailureMechanism(); + var expectedAffectedCalculations = failureMechanism.Calculations.Where(c => c.HasOutput) + .ToArray(); // Call - PipingDataSynchronizationService.ClearCalculationOutput(calculation); + IEnumerable affectedItems = PipingDataSynchronizationService.ClearAllCalculationOutput(failureMechanism); // Assert - Assert.IsNull(calculation.Output); + Assert.IsFalse(failureMechanism.Calculations.Any(c => c.HasOutput)); + CollectionAssert.AreEquivalent(expectedAffectedCalculations, affectedItems); } [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_WithoutAssessmentSection_ThrowsArgumentNullException() + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_FailureMechanismNull_ThrowsArgumentNullException() { // Call TestDelegate call = () => PipingDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(null); @@ -118,131 +99,83 @@ } [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationAndOutput_ClearsHydraulicBoundaryLocationAndCalculationsAndReturnsAffectedCalculations() + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_WithVariousCalculations_ClearsHydraulicBoundaryLocationAndCalculationsAndReturnsAffectedCalculations() { // Setup - var failureMechanism = new PipingFailureMechanism(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0); + PipingFailureMechanism failureMechanism = CreateFullyConfiguredFailureMechanism(); + var expectedAffectedCalculations = failureMechanism.Calculations.Cast() + .Where(c => c.InputParameters.HydraulicBoundaryLocation != null || c.HasOutput) + .ToArray(); - var calculation1 = new PipingCalculation(new GeneralPipingInput()) - { - InputParameters = - { - HydraulicBoundaryLocation = hydraulicBoundaryLocation - }, - Output = new TestPipingOutput() - }; - - var calculation2 = new PipingCalculation(new GeneralPipingInput()) - { - InputParameters = - { - HydraulicBoundaryLocation = hydraulicBoundaryLocation - }, - Output = new TestPipingOutput() - }; - - var calculation3 = new PipingCalculation(new GeneralPipingInput()); - - failureMechanism.CalculationsGroup.Children.Add(calculation1); - failureMechanism.CalculationsGroup.Children.Add(calculation2); - failureMechanism.CalculationsGroup.Children.Add(calculation3); - // Call IEnumerable affectedItems = PipingDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); // Assert - foreach (PipingCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast()) - { - Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); - Assert.IsNull(calculation.Output); - } - CollectionAssert.AreEqual(new[] - { - calculation1, - calculation2 - }, affectedItems); + Assert.IsFalse(failureMechanism.Calculations.Cast() + .Any(c => c.InputParameters.HydraulicBoundaryLocation != null || c.HasOutput)); + CollectionAssert.AreEquivalent(expectedAffectedCalculations, affectedItems); } - [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationNoOutput_ClearsHydraulicBoundaryLocationAndReturnsAffectedCalculations() + private static PipingFailureMechanism CreateFullyConfiguredFailureMechanism() { - // Setup var failureMechanism = new PipingFailureMechanism(); var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0); - var calculation1 = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculationWithOutput = new PipingCalculation(new GeneralPipingInput()) { + Output = new TestPipingOutput() + }; + var calculationWithOutputAndHydraulicBoundaryLocation = new PipingCalculation(new GeneralPipingInput()) + { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation - } + }, + Output = new TestPipingOutput() }; - - var calculation2 = new PipingCalculation(new GeneralPipingInput()) + var calculationWithHydraulicBoundaryLocation = new PipingCalculation(new GeneralPipingInput()) { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; - var calculation3 = new PipingCalculation(new GeneralPipingInput()); - - failureMechanism.CalculationsGroup.Children.Add(calculation1); - failureMechanism.CalculationsGroup.Children.Add(calculation2); - failureMechanism.CalculationsGroup.Children.Add(calculation3); - - // Call - IEnumerable affectedItems = PipingDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); - - // Assert - foreach (PipingCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast()) + var subCalculation = new PipingCalculation(new GeneralPipingInput()); + var subCalculationWithOutput = new PipingCalculation(new GeneralPipingInput()) { - Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); - } - CollectionAssert.AreEqual(new[] - { - calculation1, - calculation2 - }, affectedItems); - } - - [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithOutputAndNoHydraulicBoundaryLocation_ClearsOutputAndReturnsAffectedCalculations() - { - // Setup - var failureMechanism = new PipingFailureMechanism(); - - var calculation1 = new PipingCalculation(new GeneralPipingInput()) - { Output = new TestPipingOutput() }; - - var calculation2 = new PipingCalculation(new GeneralPipingInput()) + var subCalculationWithOutputAndHydraulicBoundaryLocation = new PipingCalculation(new GeneralPipingInput()) { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + }, Output = new TestPipingOutput() }; + var subCalculationWithHydraulicBoundaryLocation = new PipingCalculation(new GeneralPipingInput()) + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + } + }; - var calculation3 = new PipingCalculation(new GeneralPipingInput()); + failureMechanism.CalculationsGroup.Children.Add(calculation); + failureMechanism.CalculationsGroup.Children.Add(calculationWithOutput); + failureMechanism.CalculationsGroup.Children.Add(calculationWithOutputAndHydraulicBoundaryLocation); + failureMechanism.CalculationsGroup.Children.Add(calculationWithHydraulicBoundaryLocation); - failureMechanism.CalculationsGroup.Children.Add(calculation1); - failureMechanism.CalculationsGroup.Children.Add(calculation2); - failureMechanism.CalculationsGroup.Children.Add(calculation3); + var calculationGroup = new CalculationGroup(); + calculationGroup.Children.Add(subCalculation); + calculationGroup.Children.Add(subCalculationWithOutput); + calculationGroup.Children.Add(subCalculationWithOutputAndHydraulicBoundaryLocation); + calculationGroup.Children.Add(subCalculationWithHydraulicBoundaryLocation); + failureMechanism.CalculationsGroup.Children.Add(calculationGroup); - // Call - IEnumerable affectedItems = PipingDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); - - // Assert - foreach (PipingCalculation calculation in failureMechanism.CalculationsGroup.Children.Cast()) - { - Assert.IsNull(calculation.Output); - } - CollectionAssert.AreEqual(new[] - { - calculation1, - calculation2 - }, affectedItems); + return failureMechanism; } } } \ No newline at end of file