Index: Ringtoets/Common/src/Ringtoets.Common.Service/Properties/Resources.Designer.cs =================================================================== diff -u -rf09f2ae0881378aedf0b5b576df6ecc3ff44ceee -r876e8dad04c55d7c515f485312be8c3acf899740 --- Ringtoets/Common/src/Ringtoets.Common.Service/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision f09f2ae0881378aedf0b5b576df6ecc3ff44ceee) +++ Ringtoets/Common/src/Ringtoets.Common.Service/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 876e8dad04c55d7c515f485312be8c3acf899740) @@ -22,7 +22,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34209 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -109,6 +109,15 @@ } /// + /// Looks up a localized string similar to Er is geen hydraulische randvoorwaardendatabase geïmporteerd.. + /// + public static string CalculationService_ValidateInput_No_hydraulic_boundary_database_selected { + get { + return ResourceManager.GetString("CalculationService_ValidateInput_No_hydraulic_boundary_database_selected", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Er is geen hydraulische randvoorwaardenlocatie geselecteerd.. /// public static string CalculationService_ValidateInput_No_hydraulic_boundary_location_selected { @@ -177,7 +186,7 @@ /// /// Looks up a localized string similar to Er is geen geldige damhoogte ingevoerd.. /// - public static string ValidationService_ValidateInput_invalid_BreakWaterHeight_value { + public static string Validation_Invalid_BreakWaterHeight_value { get { return ResourceManager.GetString("Validation_Invalid_BreakWaterHeight_value", resourceCulture); } Index: Ringtoets/Common/src/Ringtoets.Common.Service/Properties/Resources.resx =================================================================== diff -u -rf09f2ae0881378aedf0b5b576df6ecc3ff44ceee -r876e8dad04c55d7c515f485312be8c3acf899740 --- Ringtoets/Common/src/Ringtoets.Common.Service/Properties/Resources.resx (.../Resources.resx) (revision f09f2ae0881378aedf0b5b576df6ecc3ff44ceee) +++ Ringtoets/Common/src/Ringtoets.Common.Service/Properties/Resources.resx (.../Resources.resx) (revision 876e8dad04c55d7c515f485312be8c3acf899740) @@ -168,4 +168,7 @@ Er is geen geldige damhoogte ingevoerd. + + Er is geen hydraulische randvoorwaardendatabase geïmporteerd. + \ No newline at end of file Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs =================================================================== diff -u -re69acb9595f7bf1d202ddd1fb51934b66768b75d -r876e8dad04c55d7c515f485312be8c3acf899740 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision e69acb9595f7bf1d202ddd1fb51934b66768b75d) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision 876e8dad04c55d7c515f485312be8c3acf899740) @@ -274,28 +274,35 @@ { List validationResult = new List(); - if (inputParameters.HydraulicBoundaryLocation == null) + if (assessmentSection.HydraulicBoundaryDatabase == null) { - validationResult.Add(RingtoetsCommonServiceResources.CalculationService_ValidateInput_No_hydraulic_boundary_location_selected); + validationResult.Add(RingtoetsCommonServiceResources.CalculationService_ValidateInput_No_hydraulic_boundary_database_selected); } + else + { + if (inputParameters.HydraulicBoundaryLocation == null) + { + validationResult.Add(RingtoetsCommonServiceResources.CalculationService_ValidateInput_No_hydraulic_boundary_location_selected); + } - var validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath); + var validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath); - if (!string.IsNullOrEmpty(validationProblem)) - { - validationResult.Add(validationProblem); - } + if (!string.IsNullOrEmpty(validationProblem)) + { + validationResult.Add(validationProblem); + } - if (inputParameters.DikeProfile == null) - { - validationResult.Add(RingtoetsCommonServiceResources.CalculationService_ValidateInput_No_dike_profile_selected); - } + if (inputParameters.DikeProfile == null) + { + validationResult.Add(RingtoetsCommonServiceResources.CalculationService_ValidateInput_No_dike_profile_selected); + } - if (inputParameters.UseBreakWater) - { - if (double.IsNaN(inputParameters.BreakWater.Height) || double.IsInfinity(inputParameters.BreakWater.Height)) + if (inputParameters.UseBreakWater) { - validationResult.Add(RingtoetsCommonServiceResources.ValidationService_ValidateInput_invalid_BreakWaterHeight_value); + if (double.IsNaN(inputParameters.BreakWater.Height) || double.IsInfinity(inputParameters.BreakWater.Height)) + { + validationResult.Add(RingtoetsCommonServiceResources.Validation_Invalid_BreakWaterHeight_value); + } } } Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Service.Test/GrassCoverErosionInwardsCalculationServiceTest.cs =================================================================== diff -u -r975eb14461865f3e93dfd8224fc9f10fd71b0adb -r876e8dad04c55d7c515f485312be8c3acf899740 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Service.Test/GrassCoverErosionInwardsCalculationServiceTest.cs (.../GrassCoverErosionInwardsCalculationServiceTest.cs) (revision 975eb14461865f3e93dfd8224fc9f10fd71b0adb) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Service.Test/GrassCoverErosionInwardsCalculationServiceTest.cs (.../GrassCoverErosionInwardsCalculationServiceTest.cs) (revision 876e8dad04c55d7c515f485312be8c3acf899740) @@ -31,6 +31,7 @@ using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.HydraRing.Calculation.Calculator.Factory; using Ringtoets.HydraRing.Calculation.Parsers; using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; using Ringtoets.HydraRing.Data; @@ -40,7 +41,7 @@ [TestFixture] public class GrassCoverErosionInwardsCalculationServiceTest { - private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); + private readonly static string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); [Test] public void Validate_NoHydraulicBoundaryDatabase_LogsErrorAndReturnsFalse() @@ -76,7 +77,7 @@ var msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", name), msgs[0]); - StringAssert.StartsWith("Validatie mislukt: Er is geen hydraulische randvoorwaardenlocatie geselecteerd.", msgs[1]); + StringAssert.StartsWith("Validatie mislukt: Er is geen hydraulische randvoorwaardendatabase geïmporteerd.", msgs[1]); StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", name), msgs[2]); }); Assert.IsFalse(isValid); @@ -85,7 +86,7 @@ } [Test] - public void Validate_InvalidHydraulicBoundaryDatabase_ReturnsFalse() + public void Validate_NoHydraulicBoundarLocation_LogsErrorAndReturnsFalse() { // Setup var grassCoverErosionInwardsFailureMechanism = new GrassCoverErosionInwardsFailureMechanism(); @@ -94,11 +95,48 @@ var assessmentSectionStub = CreateAssessmentSectionStub(grassCoverErosionInwardsFailureMechanism, mockRepository); mockRepository.ReplayAll(); - assessmentSectionStub.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + const string name = ""; + + GrassCoverErosionInwardsCalculation calculation = new GrassCoverErosionInwardsCalculation { - FilePath = Path.Combine(testDataPath, "notexisting.sqlite") + Name = name, + InputParameters = + { + DikeProfile = new DikeProfile(new Point2D(0, 0), new RoughnessPoint[0], new Point2D[0], + null, new DikeProfile.ConstructionProperties()) + } }; + // Call + bool isValid = false; + Action call = () => isValid = new GrassCoverErosionInwardsCalculationService().Validate(calculation, assessmentSectionStub); + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + var msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", name), msgs[0]); + StringAssert.StartsWith("Validatie mislukt: Er is geen hydraulische randvoorwaardenlocatie geselecteerd.", msgs[1]); + StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", name), msgs[2]); + }); + Assert.IsFalse(isValid); + + mockRepository.VerifyAll(); + } + + [Test] + public void Validate_InvalidHydraulicBoundaryDatabase_ReturnsFalse() + { + // Setup + var grassCoverErosionInwardsFailureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + + var mockRepository = new MockRepository(); + var assessmentSectionStub = CreateAssessmentSectionStub(grassCoverErosionInwardsFailureMechanism, mockRepository); + mockRepository.ReplayAll(); + + assessmentSectionStub.HydraulicBoundaryDatabase.FilePath = Path.Combine(testDataPath, "notexisting.sqlite"); + const string name = ""; GrassCoverErosionInwardsCalculation calculation = new GrassCoverErosionInwardsCalculation @@ -368,12 +406,18 @@ { try { - new GrassCoverErosionInwardsCalculationService().CalculateDikeHeight(calculation, - assessmentSectionStub, - failureMechanismSection, - grassCoverErosionInwardsFailureMechanism.GeneralInput, - grassCoverErosionInwardsFailureMechanism.Contribution, - testDataPath); + using (new HydraRingCalculatorFactoryConfig()) + { + var calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).DikeHeightCalculator; + calculator.EndInFailure = true; + + new GrassCoverErosionInwardsCalculationService().CalculateDikeHeight(calculation, + assessmentSectionStub, + failureMechanismSection, + grassCoverErosionInwardsFailureMechanism.GeneralInput, + grassCoverErosionInwardsFailureMechanism.Contribution, + testDataPath); + } } catch (HydraRingFileParserException) { @@ -394,8 +438,6 @@ }); Assert.IsFalse(expectedExceptionThrown); Assert.IsNotNull(calculation.Output); - Assert.IsNaN(calculation.Output.DikeHeight); - Assert.IsTrue(calculation.Output.DikeHeightCalculated); mockRepository.VerifyAll(); } @@ -457,6 +499,7 @@ }, 1, 2)); assessmentSectionStub.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase { + FilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"), Locations = { new HydraulicBoundaryLocation(1300001, String.Empty, 0, 0) Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsCalculationServiceBase.cs =================================================================== diff -u -re69acb9595f7bf1d202ddd1fb51934b66768b75d -r876e8dad04c55d7c515f485312be8c3acf899740 --- Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsCalculationServiceBase.cs (.../WaveConditionsCalculationServiceBase.cs) (revision e69acb9595f7bf1d202ddd1fb51934b66768b75d) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsCalculationServiceBase.cs (.../WaveConditionsCalculationServiceBase.cs) (revision 876e8dad04c55d7c515f485312be8c3acf899740) @@ -241,7 +241,7 @@ { if (double.IsInfinity(input.BreakWater.Height) || double.IsNaN(input.BreakWater.Height)) { - return RingtoetsCommonServiceResources.ValidationService_ValidateInput_invalid_BreakWaterHeight_value; + return RingtoetsCommonServiceResources.Validation_Invalid_BreakWaterHeight_value; } }