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);