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)