Index: Riskeer/Piping/src/Riskeer.Piping.Service/Probabilistic/ProbabilisticPipingCalculationService.cs =================================================================== diff -u -rab041ec7eb5f113ed57f2ff659f5f527de07b1db -rb59bdeedc35d66fb4053a7d7164ac9eb68dcea9d --- Riskeer/Piping/src/Riskeer.Piping.Service/Probabilistic/ProbabilisticPipingCalculationService.cs (.../ProbabilisticPipingCalculationService.cs) (revision ab041ec7eb5f113ed57f2ff659f5f527de07b1db) +++ Riskeer/Piping/src/Riskeer.Piping.Service/Probabilistic/ProbabilisticPipingCalculationService.cs (.../ProbabilisticPipingCalculationService.cs) (revision b59bdeedc35d66fb4053a7d7164ac9eb68dcea9d) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections.Generic; using System.Linq; using Riskeer.Common.Data.AssessmentSection; @@ -44,8 +45,24 @@ /// The to derive values from used during the validation. /// The for which to validate the values. /// true if has no validation errors; false otherwise. + /// Thrown when any parameter is null. public static bool Validate(ProbabilisticPipingCalculation calculation, GeneralPipingInput generalInput, IAssessmentSection assessmentSection) { + if (calculation == null) + { + throw new ArgumentNullException(nameof(calculation)); + } + + if (generalInput == null) + { + throw new ArgumentNullException(nameof(generalInput)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + CalculationServiceHelper.LogValidationBegin(); CalculationServiceHelper.LogMessagesAsWarning(PipingCalculationValidationHelper.GetValidationWarnings(calculation.InputParameters).ToArray()); Index: Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs =================================================================== diff -u -rab041ec7eb5f113ed57f2ff659f5f527de07b1db -rb59bdeedc35d66fb4053a7d7164ac9eb68dcea9d --- Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision ab041ec7eb5f113ed57f2ff659f5f527de07b1db) +++ Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision b59bdeedc35d66fb4053a7d7164ac9eb68dcea9d) @@ -57,6 +57,51 @@ calculation = SemiProbabilisticPipingCalculationScenarioTestFactory.CreateProbabilisticPipingCalculationScenarioWithValidInput(new TestHydraulicBoundaryLocation()); testSurfaceLineTopLevel = calculation.InputParameters.SurfaceLine.Points.Max(p => p.Z); } + + [Test] + public void Validate_CalculationNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + void Call() => ProbabilisticPipingCalculationService.Validate(null, new GeneralPipingInput(), assessmentSection); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("calculation", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void Validate_GeneralInputNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + void Call() => ProbabilisticPipingCalculationService.Validate(new TestProbabilisticPipingCalculation(), null, assessmentSection); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("generalInput", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void Validate_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + void Call() => ProbabilisticPipingCalculationService.Validate(new TestProbabilisticPipingCalculation(), new GeneralPipingInput(), null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } [Test] public void Validate_Always_LogStartAndEndOfValidatingInputs()