Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -r61a49a907749e8cf46ce15b227108fd42ffece87 -raaf4de17c3ced8f48ce22552624671d03598c22b --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 61a49a907749e8cf46ce15b227108fd42ffece87) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision aaf4de17c3ced8f48ce22552624671d03598c22b) @@ -544,12 +544,14 @@ private void CalculateAll(PipingFailureMechanismContext failureMechanismContext) { - CalculateAll(failureMechanismContext.WrappedData.CalculationsGroup, failureMechanismContext.Parent); + ActivityProgressDialogRunner.Run( + Gui.MainWindow, PipingCalculationActivityFactory.CreateCalculationActivities(failureMechanismContext.WrappedData, failureMechanismContext.Parent)); } private void CalculateAll(CalculationGroup group, PipingCalculationGroupContext context) { - CalculateAll(context.WrappedData, context.AssessmentSection); + ActivityProgressDialogRunner.Run( + Gui.MainWindow, PipingCalculationActivityFactory.CreateCalculationActivities(group, context.AssessmentSection)); } private static void ValidateAll(IEnumerable pipingCalculations, IAssessmentSection assessmentSection) @@ -560,13 +562,6 @@ } } - private void CalculateAll(CalculationGroup calculationGroup, - IAssessmentSection assessmentSection) - { - ActivityProgressDialogRunner.Run( - Gui.MainWindow, PipingCalculationActivityFactory.CreateCalculationActivities(calculationGroup, assessmentSection)); - } - #region PipingSurfaceLinesContext TreeNodeInfo private ContextMenuStrip PipingSurfaceLinesContextContextMenuStrip(PipingSurfaceLinesContext nodeData, object parentData, TreeViewControl treeViewControl) @@ -790,7 +785,7 @@ private void PerformCalculation(PipingCalculation calculation, PipingCalculationScenarioContext context) { - ActivityProgressDialogRunner.Run(Gui.MainWindow, + ActivityProgressDialogRunner.Run(Gui.MainWindow, PipingCalculationActivityFactory.CreateCalculationActivity(calculation, context.AssessmentSection)); } Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationActivityFactory.cs =================================================================== diff -u -r4650958f34f534bf2e28edf7148689d57b360996 -raaf4de17c3ced8f48ce22552624671d03598c22b --- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationActivityFactory.cs (.../PipingCalculationActivityFactory.cs) (revision 4650958f34f534bf2e28edf7148689d57b360996) +++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationActivityFactory.cs (.../PipingCalculationActivityFactory.cs) (revision aaf4de17c3ced8f48ce22552624671d03598c22b) @@ -37,9 +37,34 @@ { /// /// Creates a collection of based on the calculations in + /// . + /// + /// The failure mechanism containing the calculations to create + /// activities for. + /// The assessment section the belongs to. + /// A collection of . + /// Thrown when any parameter is null. + public static IEnumerable CreateCalculationActivities(PipingFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + return CreateCalculationActivities(failureMechanism.CalculationsGroup, assessmentSection); + } + + /// + /// Creates a collection of based on the calculations in /// . /// - /// The calculations to create + /// The calculations to create activities for. /// The assessment section the calculations in /// belong to. /// A collection of . Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityFactoryTest.cs =================================================================== diff -u -rd4da4140d259add128733d2895fea1799cce600e -raaf4de17c3ced8f48ce22552624671d03598c22b --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityFactoryTest.cs (.../PipingCalculationActivityFactoryTest.cs) (revision d4da4140d259add128733d2895fea1799cce600e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityFactoryTest.cs (.../PipingCalculationActivityFactoryTest.cs) (revision aaf4de17c3ced8f48ce22552624671d03598c22b) @@ -99,15 +99,15 @@ } [Test] - public void CreateCalculationActivities_CalculationGroupNull_ThrowsArgumentNullException() + public void CreateCalculationActivitiesForCalculationGroup_CalculationGroupNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); mocks.ReplayAll(); // Call - TestDelegate test = () => PipingCalculationActivityFactory.CreateCalculationActivities(null, assessmentSection); + TestDelegate test = () => PipingCalculationActivityFactory.CreateCalculationActivities((CalculationGroup) null, assessmentSection); // Assert var exception = Assert.Throws(test); @@ -116,7 +116,7 @@ } [Test] - public void CreateCalculationActivities_AssessmentSectionNull_ThrowsArgumentNullException() + public void CreateCalculationActivitiesForCalculationGroup_AssessmentSectionNull_ThrowsArgumentNullException() { // Call TestDelegate test = () => PipingCalculationActivityFactory.CreateCalculationActivities(new CalculationGroup(), null); @@ -127,7 +127,7 @@ } [Test] - public void CreateCalculationActivities_WithValidCalculations_ReturnsPipingCalculationActivitiesWithParametersSet() + public void CreateCalculationActivitiesForCalculationGroup_WithValidCalculations_ReturnsPipingCalculationActivitiesWithParametersSet() { // Setup var hydraulicBoundaryLocation1 = new TestHydraulicBoundaryLocation(); @@ -170,6 +170,76 @@ AssertPipingCalculationActivity(activities.ElementAt(1), calculation2, hydraulicBoundaryLocationCalculation2); } + [Test] + public void CreateCalculationActivitiesForFailureMechanism_CalculationGroupNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + TestDelegate test = () => PipingCalculationActivityFactory.CreateCalculationActivities((PipingFailureMechanism) null, assessmentSection); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("failureMechanism", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void CreateCalculationActivitiesForFailureMechanism_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => PipingCalculationActivityFactory.CreateCalculationActivities(new PipingFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] + public void CreateCalculationActivitiesForFailureMechanism_WithValidCalculations_ReturnsPipingCalculationActivitiesWithParametersSet() + { + // Setup + var hydraulicBoundaryLocation1 = new TestHydraulicBoundaryLocation(); + var hydraulicBoundaryLocation2 = new TestHydraulicBoundaryLocation(); + + var assessmentSection = new AssessmentSectionStub(); + assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] + { + hydraulicBoundaryLocation1, + hydraulicBoundaryLocation2 + }); + + var random = new Random(39); + + HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation1 = assessmentSection.WaterLevelCalculationsForLowerLimitNorm.First(); + hydraulicBoundaryLocationCalculation1.Output = new TestHydraulicBoundaryLocationCalculationOutput(random.NextDouble()); + + HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation2 = assessmentSection.WaterLevelCalculationsForLowerLimitNorm.ElementAt(1); + hydraulicBoundaryLocationCalculation2.Output = new TestHydraulicBoundaryLocationCalculationOutput(random.NextDouble()); + + PipingCalculationScenario calculation1 = CreateCalculation(hydraulicBoundaryLocation1); + PipingCalculationScenario calculation2 = CreateCalculation(hydraulicBoundaryLocation2); + + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.CalculationsGroup.Children.AddRange(new[] + { + calculation1, + calculation2 + }); + + // Call + IEnumerable activities = PipingCalculationActivityFactory.CreateCalculationActivities( + failureMechanism, assessmentSection); + + // Assert + CollectionAssert.AllItemsAreInstancesOfType(activities, typeof(PipingCalculationActivity)); + AssertPipingCalculationActivity(activities.First(), calculation1, hydraulicBoundaryLocationCalculation1); + AssertPipingCalculationActivity(activities.ElementAt(1), calculation2, hydraulicBoundaryLocationCalculation2); + } + private static PipingCalculationScenario CreateCalculation(HydraulicBoundaryLocation hydraulicBoundaryLocation) { PipingCalculationScenario calculation = PipingCalculationScenarioTestFactory.CreatePipingCalculationScenarioWithValidInput(hydraulicBoundaryLocation);