Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Calculators/UpliftVan/UpliftVanCalculator.cs =================================================================== diff -u -r607de464c7e4a83c61b0282d2b4824248a03b664 -r5514e06023c2ed1b8520056267e43f0c150f555b --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Calculators/UpliftVan/UpliftVanCalculator.cs (.../UpliftVanCalculator.cs) (revision 607de464c7e4a83c61b0282d2b4824248a03b664) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Calculators/UpliftVan/UpliftVanCalculator.cs (.../UpliftVanCalculator.cs) (revision 5514e06023c2ed1b8520056267e43f0c150f555b) @@ -79,18 +79,15 @@ public List Validate() { - IUpliftVanKernel upliftVanKernel = CreateUpliftVanKernel(); - try { - upliftVanKernel.Validate(); + IUpliftVanKernel upliftVanKernel = CreateUpliftVanKernel(); + return upliftVanKernel.Validate(); } catch (UpliftVanKernelWrapperException e) { throw new UpliftVanCalculatorException(e.Message, e); } - - return new List(); } private IUpliftVanKernel CalculateUpliftVan() Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsCalculationScenarioFactory.cs =================================================================== diff -u -r69d647795daacbf48e17d0cf3a02a21865ab4ae6 -r5514e06023c2ed1b8520056267e43f0c150f555b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsCalculationScenarioFactory.cs (.../MacroStabilityInwardsCalculationScenarioFactory.cs) (revision 69d647795daacbf48e17d0cf3a02a21865ab4ae6) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsCalculationScenarioFactory.cs (.../MacroStabilityInwardsCalculationScenarioFactory.cs) (revision 5514e06023c2ed1b8520056267e43f0c150f555b) @@ -25,6 +25,7 @@ using Core.Common.Base.Geometry; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Data.Probabilistics; using Ringtoets.Common.Data.TestUtil; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; using Ringtoets.MacroStabilityInwards.Primitives; @@ -131,42 +132,97 @@ /// A new . public static MacroStabilityInwardsCalculationScenario CreateMacroStabilityInwardsCalculationScenarioWithValidInput() { - const double bottom = 1.12; const double top = 10.56; var stochasticSoilProfile = new MacroStabilityInwardsStochasticSoilProfile(0.0, new MacroStabilityInwardsSoilProfile1D(string.Empty, 0.0, new[] { new MacroStabilityInwardsSoilLayer1D(top) { Data = { - IsAquifer = false + IsAquifer = false, + Cohesion = new VariationCoefficientLogNormalDistribution(), + FrictionAngle = new VariationCoefficientLogNormalDistribution(), + AbovePhreaticLevel = + { + Mean = (RoundedDouble) 0.3, + CoefficientOfVariation = (RoundedDouble) 0.2, + Shift = (RoundedDouble) 0.1 + }, + BelowPhreaticLevel = + { + Mean = (RoundedDouble) 15, + CoefficientOfVariation = (RoundedDouble) 0.5, + Shift = (RoundedDouble) 0.2 + } } }, - new MacroStabilityInwardsSoilLayer1D(top / 2) + new MacroStabilityInwardsSoilLayer1D(6.0) { Data = { - IsAquifer = true + IsAquifer = true, + Cohesion = new VariationCoefficientLogNormalDistribution(), + FrictionAngle = new VariationCoefficientLogNormalDistribution(), + AbovePhreaticLevel = + { + Mean = (RoundedDouble) 0.3, + CoefficientOfVariation = (RoundedDouble) 0.2, + Shift = (RoundedDouble) 0.1 + }, + BelowPhreaticLevel = + { + Mean = (RoundedDouble) 15, + CoefficientOfVariation = (RoundedDouble) 0.5, + Shift = (RoundedDouble) 0.2 + } } + }, + new MacroStabilityInwardsSoilLayer1D(0.1) + { + Data = + { + IsAquifer = false, + Cohesion = new VariationCoefficientLogNormalDistribution(), + FrictionAngle = new VariationCoefficientLogNormalDistribution(), + AbovePhreaticLevel = + { + Mean = (RoundedDouble) 0.3, + CoefficientOfVariation = (RoundedDouble) 0.2, + Shift = (RoundedDouble) 0.1 + }, + BelowPhreaticLevel = + { + Mean = (RoundedDouble) 15, + CoefficientOfVariation = (RoundedDouble) 0.5, + Shift = (RoundedDouble) 0.2 + } + } } })); var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); - var firstCharacteristicPointLocation = new Point3D(0.2, 0.0, bottom + 3 * top / 4); - var secondCharacteristicPointLocation = new Point3D(0.3, 0.0, bottom + 2 * top / 4); - var thirdCharacteristicPointLocation = new Point3D(0.4, 0.0, bottom + top / 4); - var fourthCharacteristicPointLocation = new Point3D(0.5, 0.0, bottom + 2 * top / 4); - var fifthCharacteristicPointLocation = new Point3D(0.6, 0.0, bottom + 3 * top / 4); + var firstCharacteristicPointLocation = new Point3D(0.1, 0.0, 2); + var secondCharacteristicPointLocation = new Point3D(0.2, 0.0, 2); + var thirdCharacteristicPointLocation = new Point3D(0.3, 0.0, 3); + var fourthCharacteristicPointLocation = new Point3D(0.4, 0.0, 3); + var fifthCharacteristicPointLocation = new Point3D(0.5, 0.0, 1); + var sixthCharacteristicPointLocation = new Point3D(0.6, 0.0, 1); + surfaceLine.SetGeometry(new[] { - new Point3D(0.0, 0.0, 0.0), firstCharacteristicPointLocation, secondCharacteristicPointLocation, thirdCharacteristicPointLocation, fourthCharacteristicPointLocation, fifthCharacteristicPointLocation, - new Point3D(1.0, 0.0, top) + sixthCharacteristicPointLocation }); + surfaceLine.SetSurfaceLevelOutsideAt(firstCharacteristicPointLocation); + surfaceLine.SetDikeToeAtRiverAt(secondCharacteristicPointLocation); + surfaceLine.SetDikeTopAtRiverAt(thirdCharacteristicPointLocation); + surfaceLine.SetDikeTopAtPolderAt(fourthCharacteristicPointLocation); + surfaceLine.SetDikeToeAtPolderAt(fifthCharacteristicPointLocation); + surfaceLine.SetSurfaceLevelInsideAt(sixthCharacteristicPointLocation); HydraulicBoundaryLocation hydraulicBoundaryLocation = TestHydraulicBoundaryLocation.CreateDesignWaterLevelCalculated(1.0); return new MacroStabilityInwardsCalculationScenario @@ -175,7 +231,26 @@ { SurfaceLine = surfaceLine, StochasticSoilProfile = stochasticSoilProfile, - HydraulicBoundaryLocation = hydraulicBoundaryLocation + HydraulicBoundaryLocation = hydraulicBoundaryLocation, + DikeSoilScenario = MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay, + WaterLevelPolder = new RoundedDouble(5, 0.5), + PiezometricHeadPhreaticLine2Outwards = new RoundedDouble(5, 1.0), + PiezometricHeadPhreaticLine2Inwards = new RoundedDouble(5, 1.0), + AdjustPhreaticLine3And4ForUplift = true, + UseDefaultOffsets = false, + LeakageLengthInwardsPhreaticLine3 = new RoundedDouble(5, 1.0), + LeakageLengthOutwardsPhreaticLine3 = new RoundedDouble(5, 1.0), + LeakageLengthOutwardsPhreaticLine4 = new RoundedDouble(5, 1.0), + LeakageLengthInwardsPhreaticLine4 = new RoundedDouble(5, 1.0), + PenetrationLength = new RoundedDouble(5, 1.0), + SlipPlaneMinimumLength = new RoundedDouble(5, 1.0), + SlipPlaneMinimumDepth = new RoundedDouble(5, 1.0), + MinimumLevelPhreaticLineAtDikeTopPolder = new RoundedDouble(5, 1.0), + MinimumLevelPhreaticLineAtDikeTopRiver = new RoundedDouble(5, 1.0), + PhreaticLineOffsetBelowDikeToeAtPolder = new RoundedDouble(5, 1.0), + PhreaticLineOffsetBelowDikeTopAtPolder = new RoundedDouble(5, 1.0), + PhreaticLineOffsetBelowDikeTopAtRiver = new RoundedDouble(5, 1.0), + PhreaticLineOffsetBelowShoulderBaseInside = new RoundedDouble(5, 1.0) } }; } Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.TestUtil.Test/Calculators/UpliftVan/UpliftVanCalculatorStubTest.cs =================================================================== diff -u -re2786bbbad5456a4b42b68e1d0b0f85f732393d7 -r5514e06023c2ed1b8520056267e43f0c150f555b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.TestUtil.Test/Calculators/UpliftVan/UpliftVanCalculatorStubTest.cs (.../UpliftVanCalculatorStubTest.cs) (revision e2786bbbad5456a4b42b68e1d0b0f85f732393d7) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.TestUtil.Test/Calculators/UpliftVan/UpliftVanCalculatorStubTest.cs (.../UpliftVanCalculatorStubTest.cs) (revision 5514e06023c2ed1b8520056267e43f0c150f555b) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using NUnit.Framework; using Ringtoets.MacroStabilityInwards.KernelWrapper.Calculators.UpliftVan; using Ringtoets.MacroStabilityInwards.KernelWrapper.Calculators.UpliftVan.Output; @@ -44,19 +45,6 @@ } [Test] - public void Validate_Always_ReturnEmptyList() - { - // Setup - var calculator = new UpliftVanCalculatorStub(); - - // Call - List messages = calculator.Validate(); - - // Assert - CollectionAssert.IsEmpty(messages); - } - - [Test] public void Calculate_ThrowExceptionOnCalculateFalse_ReturnResult() { // Setup @@ -92,5 +80,36 @@ Assert.AreEqual($"Message 1{Environment.NewLine}Message 2", exception.Message); Assert.IsNull(calculator.Output); } + + [Test] + public void Validate_ReturnValidationResultsFalse_ReturnsEmptyValidationResult() + { + // Setup + var calculator = new UpliftVanCalculatorStub(); + + // Call + List result = calculator.Validate(); + + // Assert + CollectionAssert.IsEmpty(result); + } + + [Test] + public void Validate_ReturnValidationResultsTrue_ReturnsValidationResults() + { + // Setup + var calculator = new UpliftVanCalculatorStub + { + ReturnValidationResults = true + }; + + // Call + List results = calculator.Validate(); + + // Assert + Assert.AreEqual(2, results.Count); + Assert.AreEqual("Validation Error 1", results.ElementAt(0)); + Assert.AreEqual("Validation Error 2", results.ElementAt(1)); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.TestUtil/Calculators/UpliftVan/UpliftVanCalculatorStub.cs =================================================================== diff -u -r19150f985431c9805d687eebb4505e440784acb6 -r5514e06023c2ed1b8520056267e43f0c150f555b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.TestUtil/Calculators/UpliftVan/UpliftVanCalculatorStub.cs (.../UpliftVanCalculatorStub.cs) (revision 19150f985431c9805d687eebb4505e440784acb6) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.TestUtil/Calculators/UpliftVan/UpliftVanCalculatorStub.cs (.../UpliftVanCalculatorStub.cs) (revision 5514e06023c2ed1b8520056267e43f0c150f555b) @@ -36,8 +36,11 @@ public UpliftVanCalculatorInput Input { get; set; } public UpliftVanCalculatorResult Output { get; private set; } + public bool ThrowExceptionOnCalculate { get; set; } + public bool ReturnValidationResults { get; set; } + public UpliftVanCalculatorResult Calculate() { if (ThrowExceptionOnCalculate) @@ -49,7 +52,11 @@ public List Validate() { - return new List(); + return ReturnValidationResults ? new List + { + "Validation Error 1", + "Validation Error 2" + } : new List(); } private static UpliftVanCalculatorResult CreateUpliftVanCalculatorResult() Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/MacroStabilityInwardsCalculationServiceTest.cs =================================================================== diff -u -rb57514896ac9566e5d0262cf66a37847ceb07eeb -r5514e06023c2ed1b8520056267e43f0c150f555b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/MacroStabilityInwardsCalculationServiceTest.cs (.../MacroStabilityInwardsCalculationServiceTest.cs) (revision b57514896ac9566e5d0262cf66a37847ceb07eeb) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/MacroStabilityInwardsCalculationServiceTest.cs (.../MacroStabilityInwardsCalculationServiceTest.cs) (revision 5514e06023c2ed1b8520056267e43f0c150f555b) @@ -69,16 +69,19 @@ testCalculation.Name = name; - // Call - Action call = () => MacroStabilityInwardsCalculationService.Validate(testCalculation); - - // Assert - TestHelper.AssertLogMessages(call, messages => + using (new MacroStabilityInwardsCalculatorFactoryConfig()) { - string[] msgs = messages.ToArray(); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[1]); - }); + // Call + Action call = () => MacroStabilityInwardsCalculationService.Validate(testCalculation); + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[1]); + }); + } } [Test] @@ -89,12 +92,15 @@ MacroStabilityInwardsCalculation invalidMacroStabilityInwardsCalculation = MacroStabilityInwardsCalculationScenarioFactory.CreateMacroStabilityInwardsCalculationScenarioWithInvalidInput(); invalidMacroStabilityInwardsCalculation.Output = output; - // Call - bool isValid = MacroStabilityInwardsCalculationService.Validate(invalidMacroStabilityInwardsCalculation); + using (new MacroStabilityInwardsCalculatorFactoryConfig()) + { + // Call + bool isValid = MacroStabilityInwardsCalculationService.Validate(invalidMacroStabilityInwardsCalculation); - // Assert - Assert.IsFalse(isValid); - Assert.AreSame(output, invalidMacroStabilityInwardsCalculation.Output); + // Assert + Assert.IsFalse(isValid); + Assert.AreSame(output, invalidMacroStabilityInwardsCalculation.Output); + } } [Test] @@ -108,22 +114,25 @@ Name = name }; - // Call - var isValid = false; - Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(calculation); - - // Assert - TestHelper.AssertLogMessages(call, messages => + using (new MacroStabilityInwardsCalculatorFactoryConfig()) { - string[] msgs = messages.ToArray(); - Assert.AreEqual(5, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Validatie mislukt: Er is geen hydraulische randvoorwaardenlocatie geselecteerd.", msgs[1]); - Assert.AreEqual("Validatie mislukt: Er is geen profielschematisatie geselecteerd.", msgs[2]); - Assert.AreEqual("Validatie mislukt: Er is geen ondergrondschematisatie geselecteerd.", msgs[3]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[4]); - }); - Assert.IsFalse(isValid); + // Call + var isValid = false; + Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(calculation); + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(5, msgs.Length); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + Assert.AreEqual("Validatie mislukt: Er is geen hydraulische randvoorwaardenlocatie geselecteerd.", msgs[1]); + Assert.AreEqual("Validatie mislukt: Er is geen profielschematisatie geselecteerd.", msgs[2]); + Assert.AreEqual("Validatie mislukt: Er is geen ondergrondschematisatie geselecteerd.", msgs[3]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[4]); + }); + Assert.IsFalse(isValid); + } } [Test] @@ -136,20 +145,23 @@ testCalculation.InputParameters.HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); testCalculation.InputParameters.UseAssessmentLevelManualInput = false; - // Call - var isValid = false; - Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); - - // Assert - TestHelper.AssertLogMessages(call, messages => + using (new MacroStabilityInwardsCalculatorFactoryConfig()) { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Validatie mislukt: Kan het toetspeil niet afleiden op basis van de invoer.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); + // Call + var isValid = false; + Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + Assert.AreEqual("Validatie mislukt: Kan het toetspeil niet afleiden op basis van de invoer.", msgs[1]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); + }); + Assert.IsFalse(isValid); + } } [Test] @@ -165,20 +177,23 @@ testCalculation.InputParameters.AssessmentLevel = (RoundedDouble) assessmentLevel; testCalculation.Name = name; - // Call - var isValid = false; - Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); - - // Assert - TestHelper.AssertLogMessages(call, messages => + using (new MacroStabilityInwardsCalculatorFactoryConfig()) { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Validatie mislukt: De waarde voor 'toetspeil' moet een concreet getal zijn.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); + // Call + var isValid = false; + Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + Assert.AreEqual("Validatie mislukt: De waarde voor 'toetspeil' moet een concreet getal zijn.", msgs[1]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); + }); + Assert.IsFalse(isValid); + } } [Test] @@ -190,20 +205,23 @@ testCalculation.InputParameters.SurfaceLine = null; testCalculation.Name = name; - // Call - var isValid = false; - Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); - - // Assert - TestHelper.AssertLogMessages(call, messages => + using (new MacroStabilityInwardsCalculatorFactoryConfig()) { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Validatie mislukt: Er is geen profielschematisatie geselecteerd.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); + // Call + var isValid = false; + Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + Assert.AreEqual("Validatie mislukt: Er is geen profielschematisatie geselecteerd.", msgs[1]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); + }); + Assert.IsFalse(isValid); + } } [Test] @@ -216,20 +234,50 @@ testCalculation.Name = name; var isValid = false; + using (new MacroStabilityInwardsCalculatorFactoryConfig()) + { + // Call + Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); - // Call - Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); + // Assert + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + Assert.AreEqual("Validatie mislukt: Er is geen ondergrondschematisatie geselecteerd.", msgs[1]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); + }); + Assert.IsFalse(isValid); + } + } - // Assert - TestHelper.AssertLogMessages(call, messages => + [Test] + public void Validate_KernelReturnsValidationResults_LogsErrorAndReturnsFalse() + { + // Setup + const string name = ""; + testCalculation.Name = name; + + var isValid = false; + using (new MacroStabilityInwardsCalculatorFactoryConfig()) { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Validatie mislukt: Er is geen ondergrondschematisatie geselecteerd.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); + // Call + Action call = () => isValid = MacroStabilityInwardsCalculationService.Validate(testCalculation); + ((TestMacroStabilityInwardsCalculatorFactory) MacroStabilityInwardsCalculatorFactory.Instance).LastCreatedUpliftVanCalculator.ReturnValidationResults = true; + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(4, msgs.Length); + CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); + Assert.AreEqual("Validatie mislukt: Validation Error 1", msgs[1]); + Assert.AreEqual("Validatie mislukt: Validation Error 2", msgs[2]); + CalculationServiceTestHelper.AssertValidationEndMessage(msgs[3]); + }); + Assert.IsFalse(isValid); + } } [Test]