Index: Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs =================================================================== diff -u -rb4b28a413d920e3e03643453c8ce609bb9d4796d -r39bb85df37101e479bee5787a048d18ba3f4a884 --- Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision b4b28a413d920e3e03643453c8ce609bb9d4796d) +++ Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision 39bb85df37101e479bee5787a048d18ba3f4a884) @@ -905,6 +905,74 @@ mocks.VerifyAll(); } + [Test] + public void Validate_SaturatedCoverageLayerVolumicWeightShiftLessThanWaterVolumicWeight_LogsMessageAndReturnsFalse() + { + // Setup + var failureMechanism = new PipingFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( + failureMechanism, mocks, validHydraulicBoundaryDatabaseFilePath); + mocks.ReplayAll(); + + var coverageLayerInvalidSaturatedVolumicWeight = new PipingSoilLayer(testSurfaceLineTopLevel) + { + IsAquifer = false, + BelowPhreaticLevel = new LogNormalDistribution + { + Mean = (RoundedDouble) 9.81, + StandardDeviation = (RoundedDouble) 2, + Shift = (RoundedDouble) 0 + } + }; + var validLayer = new PipingSoilLayer(5.0) + { + IsAquifer = true, + Permeability = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 1, + CoefficientOfVariation = (RoundedDouble) 0.5 + }, + DiameterD70 = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.0002, + CoefficientOfVariation = (RoundedDouble) 0 + } + }; + var profile = new PipingSoilProfile(string.Empty, 0.0, + new[] + { + coverageLayerInvalidSaturatedVolumicWeight, + validLayer + }, + SoilProfileType.SoilProfile1D); + + calculation.InputParameters.StochasticSoilProfile = new PipingStochasticSoilProfile(0.0, profile); + + var isValid = false; + + // Call + void Call() => isValid = ProbabilisticPipingCalculationService.Validate(calculation, + new GeneralPipingInput(), + assessmentSection); + + // Assert + TestHelper.AssertLogMessages(Call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + Assert.AreEqual( + "De verschuiving van het verzadigd volumetrisch gewicht van de deklaag moet groter zijn dan het volumetrisch gewicht van water.", + msgs[1]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); + }); + + Assert.IsFalse(isValid); + mocks.VerifyAll(); + } + #endregion #region Calculate