Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs =================================================================== diff -u -re5d6f3ed4676acd3b98ac309a0e015335840916e -r260a05afbf1ef2b3466e1588b7ef5fccbe52c43b --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs) (revision e5d6f3ed4676acd3b98ac309a0e015335840916e) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs) (revision 260a05afbf1ef2b3466e1588b7ef5fccbe52c43b) @@ -40,6 +40,7 @@ using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; using Ringtoets.Revetment.Data; using Ringtoets.Revetment.Service; +using Ringtoets.Revetment.TestUtil; namespace Ringtoets.GrassCoverErosionOutwards.Service.Test { @@ -80,12 +81,16 @@ public void Validate_NoHydraulicBoundaryDatabase_LogValidationMessageAndReturnFalse() { // Setup + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); string testFilePath = Path.Combine(testDataPath, "NonExisting.sqlite"); var isValid = true; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => isValid = GrassCoverErosionOutwardsWaveConditionsCalculationService.Validate(calculation, testFilePath); @@ -101,18 +106,23 @@ }); Assert.IsFalse(isValid); } + mockRepository.VerifyAll(); } [Test] public void Validate_InvalidHydraulicBoundaryDatabase_LogsValidationMessageAndReturnFalse() { // Setup + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); string testFilePath = Path.Combine(testDataPath, "corruptschema.sqlite"); var isValid = true; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => isValid = GrassCoverErosionOutwardsWaveConditionsCalculationService.Validate(calculation, testFilePath); @@ -128,18 +138,23 @@ }); Assert.IsFalse(isValid); } + mockRepository.VerifyAll(); } [Test] public void Validate_ValidHydraulicBoundaryDatabaseWithoutSettings_LogsValidationMessageAndReturnFalse() { // Setup + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); string testFilePath = Path.Combine(testDataPath, "HRD nosettings.sqlite"); var isValid = true; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => isValid = GrassCoverErosionOutwardsWaveConditionsCalculationService.Validate(calculation, testFilePath); @@ -155,18 +170,23 @@ }); Assert.IsFalse(isValid); } + mockRepository.VerifyAll(); } [Test] public void Validate_NoHydraulicBoundaryLocation_LogsValidationMessageAndReturnFalse() { // Setup + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); calculation.InputParameters.HydraulicBoundaryLocation = null; var isValid = true; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => isValid = GrassCoverErosionOutwardsWaveConditionsCalculationService.Validate(calculation, validFilePath); @@ -182,18 +202,23 @@ }); Assert.IsFalse(isValid); } + mockRepository.VerifyAll(); } [Test] public void Validate_NoDesignWaterLevel_LogsValidationMessageAndReturnFalse() { // Setup + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); calculation.InputParameters.HydraulicBoundaryLocation.DesignWaterLevelOutput = null; var isValid = true; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => isValid = GrassCoverErosionOutwardsWaveConditionsCalculationService.Validate(calculation, validFilePath); @@ -209,6 +234,7 @@ }); Assert.IsFalse(isValid); } + mockRepository.VerifyAll(); } [Test] @@ -217,13 +243,17 @@ public void Validate_NoWaterLevels_LogsValidationMessageAndReturnFalse(double lowerBoundaryRevetment, double upperBoundaryRevetment) { // Setup + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); calculation.InputParameters.LowerBoundaryRevetment = (RoundedDouble) lowerBoundaryRevetment; calculation.InputParameters.UpperBoundaryRevetment = (RoundedDouble) upperBoundaryRevetment; var isValid = true; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => isValid = GrassCoverErosionOutwardsWaveConditionsCalculationService.Validate(calculation, validFilePath); @@ -239,6 +269,7 @@ }); Assert.IsFalse(isValid); } + mockRepository.VerifyAll(); } [Test] @@ -248,14 +279,18 @@ public void Validate_CalculationWithForeshoreAndUsesBreakWaterAndHasInvalidBreakWaterHeight_LogsValidationMessageAndReturnFalse(double breakWaterHeight) { // Setup + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(new BreakWater(BreakWaterType.Dam, breakWaterHeight)); calculation.InputParameters.UseBreakWater = true; var isValid = true; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => isValid = GrassCoverErosionOutwardsWaveConditionsCalculationService.Validate(calculation, validFilePath); @@ -272,6 +307,7 @@ }); Assert.IsFalse(isValid); } + mockRepository.VerifyAll(); } [Test] @@ -343,21 +379,24 @@ public void Calculate_CalculationWithForeshoreAndDoesNotUseBreakWaterAndHasInvalidBreakWaterHeight_PerformCalculationAndLogStartAndEnd(double breakWaterHeight) { // Setup - GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); - calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(new BreakWater(BreakWaterType.Dam, - breakWaterHeight)); - calculation.InputParameters.UseBreakWater = false; var grassCoverErosionOutwardsFailureMechanism = new GrassCoverErosionOutwardsFailureMechanism { Contribution = 20 }; var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Twice(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(grassCoverErosionOutwardsFailureMechanism, mockRepository); mockRepository.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetDefaultCalculation(); + calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(new BreakWater(BreakWaterType.Dam, + breakWaterHeight)); + calculation.InputParameters.UseBreakWater = false; + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => new GrassCoverErosionOutwardsWaveConditionsCalculationService().Calculate(calculation, @@ -386,6 +425,7 @@ StringAssert.StartsWith($"Berekening van '{calculation.Name}' beëindigd om: ", msgs[7]); }); } + mockRepository.VerifyAll(); } [Test] @@ -402,6 +442,8 @@ }; var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Twice(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(grassCoverErosionOutwardsFailureMechanism, mockRepository); mockRepository.ReplayAll(); @@ -421,7 +463,7 @@ break; } - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => new GrassCoverErosionOutwardsWaveConditionsCalculationService().Calculate(calculation, @@ -450,6 +492,7 @@ StringAssert.StartsWith($"Berekening van '{calculation.Name}' beëindigd om: ", msgs[7]); }); } + mockRepository.VerifyAll(); } [Test] @@ -461,16 +504,17 @@ { Contribution = 20 }; + var testWaveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(testWaveConditionsCosineCalculator).Repeat.Times(3); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(grassCoverErosionOutwardsFailureMechanism, mockRepository); mockRepository.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestWaveConditionsCosineCalculator testWaveConditionsCosineCalculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - // Call new GrassCoverErosionOutwardsWaveConditionsCalculationService().Calculate(calculation, grassCoverErosionOutwardsFailureMechanism, @@ -481,8 +525,6 @@ WaveConditionsCosineCalculationInput[] testWaveConditionsInputs = testWaveConditionsCosineCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(3, testWaveConditionsInputs.Length); - Assert.AreEqual(testDataPath, testWaveConditionsCosineCalculator.HydraulicBoundaryDatabaseDirectory); - var waterLevelIndex = 0; foreach (WaveConditionsCosineCalculationInput actualInput in testWaveConditionsInputs) { @@ -508,6 +550,7 @@ HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); } } + mockRepository.VerifyAll(); } [Test] @@ -521,11 +564,12 @@ }; var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(grassCoverErosionOutwardsFailureMechanism, mockRepository); mockRepository.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { var grassCoverErosionOutwardsWaveConditionsCalculationService = new GrassCoverErosionOutwardsWaveConditionsCalculationService(); grassCoverErosionOutwardsWaveConditionsCalculationService.Cancel(); @@ -551,15 +595,17 @@ { Contribution = 20 }; + var testWaveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(testWaveConditionsCosineCalculator); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(grassCoverErosionOutwardsFailureMechanism, mockRepository); mockRepository.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestWaveConditionsCosineCalculator testWaveConditionsCosineCalculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; var grassCoverErosionOutwardsWaveConditionsCalculationService = new GrassCoverErosionOutwardsWaveConditionsCalculationService(); testWaveConditionsCosineCalculator.CalculationFinishedHandler += (s, e) => grassCoverErosionOutwardsWaveConditionsCalculationService.Cancel(); @@ -587,11 +633,13 @@ }; var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(3); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(grassCoverErosionOutwardsFailureMechanism, mockRepository); mockRepository.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call new GrassCoverErosionOutwardsWaveConditionsCalculationService().Calculate(calculation, @@ -603,88 +651,12 @@ Assert.IsNotNull(calculation.Output); Assert.AreEqual(3, calculation.Output.Items.Count()); } - } - - [Test] - public void Calculate_CalculationFailedWithExceptionAndLastErrorPresent_LogErrorAndThrowException() - { - // Setup - var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism - { - Contribution = 20 - }; - - var mockRepository = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(failureMechanism, mockRepository); - mockRepository.ReplayAll(); - - GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(); - - using (new HydraRingCalculatorFactoryConfig()) - { - TestWaveConditionsCosineCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - calculator.LastErrorFileContent = "An error occurred"; - calculator.EndInFailure = true; - - HydraRingCalculationException exception = null; - - // Call - Action call = () => - { - try - { - new GrassCoverErosionOutwardsWaveConditionsCalculationService().Calculate(calculation, - failureMechanism, - assessmentSectionStub, - validFilePath); - } - catch (HydraRingCalculationException e) - { - exception = e; - } - }; - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(15, msgs.Length); - - StringAssert.StartsWith($"Berekening van '{calculation.Name}' gestart om: ", msgs[0]); - - const string detailedReport = " Bekijk het foutrapport door op details te klikken."; - RoundedDouble[] waterLevels = calculation.InputParameters.WaterLevels.ToArray(); - RoundedDouble waterLevelUpperBoundaryRevetment = waterLevels[0]; - RoundedDouble waterLevelMiddleRevetment = waterLevels[1]; - RoundedDouble waterLevelLowerBoundaryRevetment = waterLevels[2]; - - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelUpperBoundaryRevetment}' gestart.", msgs[1]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelUpperBoundaryRevetment}'.{detailedReport}", msgs[2]); - StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[3]); - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelUpperBoundaryRevetment}' beëindigd.", msgs[4]); - - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelMiddleRevetment}' gestart.", msgs[5]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelMiddleRevetment}'.{detailedReport}", msgs[6]); - StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[7]); - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelMiddleRevetment}' beëindigd.", msgs[8]); - - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelLowerBoundaryRevetment}' gestart.", msgs[9]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelLowerBoundaryRevetment}'.{detailedReport}", msgs[10]); - StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[11]); - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelLowerBoundaryRevetment}' beëindigd.", msgs[12]); - - Assert.AreEqual($"Berekening '{calculation.Name}' is mislukt voor alle waterstanden.", msgs[13]); - StringAssert.StartsWith($"Berekening van '{calculation.Name}' beëindigd om: ", msgs[14]); - }); - Assert.IsInstanceOf(exception); - Assert.AreEqual($"Berekening '{calculation.Name}' is mislukt voor alle waterstanden.", exception.Message); - Assert.IsNull(calculation.Output); - } mockRepository.VerifyAll(); } - [Test] - public void Calculate_CalculationFailedWithExceptionAndNoLastErrorPresent_LogErrorAndThrowException() + [TestCaseSource(typeof(WaveConditionsCosineCalculatorTestHelper), nameof(WaveConditionsCosineCalculatorTestHelper.FailingWaveConditionsCosineCalculators))] + public void Calculate_ThreeCalculationsFail_ThrowsHydraRingCalculationExceptionAndLogError(TestWaveConditionsCosineCalculator calculatorThatFails, + string detailedReport) { // Setup var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism @@ -693,17 +665,16 @@ }; var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(calculatorThatFails).Repeat.Times(3); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); mockRepository.ReplayAll(); GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestWaveConditionsCosineCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - calculator.EndInFailure = true; - HydraRingCalculationException exception = null; // Call @@ -730,24 +701,23 @@ StringAssert.StartsWith($"Berekening van '{calculation.Name}' gestart om: ", msgs[0]); - const string detailedReport = " Er is geen foutrapport beschikbaar."; RoundedDouble[] waterLevels = calculation.InputParameters.WaterLevels.ToArray(); RoundedDouble waterLevelUpperBoundaryRevetment = waterLevels[0]; RoundedDouble waterLevelMiddleRevetment = waterLevels[1]; RoundedDouble waterLevelLowerBoundaryRevetment = waterLevels[2]; Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelUpperBoundaryRevetment}' gestart.", msgs[1]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelUpperBoundaryRevetment}'.{detailedReport}", msgs[2]); + Assert.AreEqual($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelUpperBoundaryRevetment}'. {detailedReport}", msgs[2]); StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[3]); Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelUpperBoundaryRevetment}' beëindigd.", msgs[4]); Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelMiddleRevetment}' gestart.", msgs[5]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelMiddleRevetment}'.{detailedReport}", msgs[6]); + Assert.AreEqual($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelMiddleRevetment}'. {detailedReport}", msgs[6]); StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[7]); Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelMiddleRevetment}' beëindigd.", msgs[8]); Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelLowerBoundaryRevetment}' gestart.", msgs[9]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelLowerBoundaryRevetment}'.{detailedReport}", msgs[10]); + Assert.AreEqual($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelLowerBoundaryRevetment}'. {detailedReport}", msgs[10]); StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[11]); Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelLowerBoundaryRevetment}' beëindigd.", msgs[12]); @@ -761,117 +731,6 @@ mockRepository.VerifyAll(); } - [Test] - public void Calculate_CalculationFailedWithoutExceptionAndWithLastErrorPresent_LogErrorAndThrowException() - { - // Setup - var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism - { - Contribution = 20 - }; - - var mockRepository = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mockRepository); - mockRepository.ReplayAll(); - - GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(); - - using (new HydraRingCalculatorFactoryConfig()) - { - TestWaveConditionsCosineCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - calculator.EndInFailure = false; - calculator.LastErrorFileContent = "An error occurred"; - - HydraRingCalculationException exception = null; - - // Call - Action call = () => - { - try - { - new GrassCoverErosionOutwardsWaveConditionsCalculationService().Calculate(calculation, - failureMechanism, - assessmentSectionStub, - validFilePath); - } - catch (HydraRingCalculationException e) - { - exception = e; - } - }; - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(15, msgs.Length); - - StringAssert.StartsWith($"Berekening van '{calculation.Name}' gestart om: ", msgs[0]); - - const string detailedReport = " Bekijk het foutrapport door op details te klikken."; - RoundedDouble[] waterLevels = calculation.InputParameters.WaterLevels.ToArray(); - RoundedDouble waterLevelUpperBoundaryRevetment = waterLevels[0]; - RoundedDouble waterLevelMiddleRevetment = waterLevels[1]; - RoundedDouble waterLevelLowerBoundaryRevetment = waterLevels[2]; - - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelUpperBoundaryRevetment}' gestart.", msgs[1]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelUpperBoundaryRevetment}'.{detailedReport}", msgs[2]); - StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[3]); - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelUpperBoundaryRevetment}' beëindigd.", msgs[4]); - - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelMiddleRevetment}' gestart.", msgs[5]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelMiddleRevetment}'.{detailedReport}", msgs[6]); - StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[7]); - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelMiddleRevetment}' beëindigd.", msgs[8]); - - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelLowerBoundaryRevetment}' gestart.", msgs[9]); - StringAssert.StartsWith($"Berekening '{calculation.Name}' is mislukt voor waterstand '{waterLevelLowerBoundaryRevetment}'.{detailedReport}", msgs[10]); - StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[11]); - Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevelLowerBoundaryRevetment}' beëindigd.", msgs[12]); - - Assert.AreEqual($"Berekening '{calculation.Name}' is mislukt voor alle waterstanden.", msgs[13]); - StringAssert.StartsWith($"Berekening van '{calculation.Name}' beëindigd om: ", msgs[14]); - }); - Assert.IsInstanceOf(exception); - Assert.AreEqual($"Berekening '{calculation.Name}' is mislukt voor alle waterstanden.", exception.Message); - Assert.IsNull(calculation.Output); - } - mockRepository.VerifyAll(); - } - - [Test] - public void Calculate_InnerCalculationFails_ThrowsException() - { - // Setup - GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(); - var grassCoverErosionOutwardsFailureMechanism = new GrassCoverErosionOutwardsFailureMechanism - { - Contribution = 20 - }; - - var mockRepository = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase(grassCoverErosionOutwardsFailureMechanism, - mockRepository); - mockRepository.ReplayAll(); - - using (new HydraRingCalculatorFactoryConfig()) - { - TestWaveConditionsCosineCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - calculator.EndInFailure = true; - - // Call - TestDelegate test = () => new GrassCoverErosionOutwardsWaveConditionsCalculationService().Calculate(calculation, - grassCoverErosionOutwardsFailureMechanism, - assessmentSectionStub, - validFilePath); - - // Assert - Assert.Throws(test); - } - mockRepository.VerifyAll(); - } - private static GrassCoverErosionOutwardsWaveConditionsCalculation GetValidCalculation() { var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj =================================================================== diff -u -r08b3bcba439831d547684b194ecdf903f2519700 -r260a05afbf1ef2b3466e1588b7ef5fccbe52c43b --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj) (revision 08b3bcba439831d547684b194ecdf903f2519700) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj) (revision 260a05afbf1ef2b3466e1588b7ef5fccbe52c43b) @@ -103,6 +103,10 @@ {2331235f-1e56-4344-acc2-191c22a39594} Ringtoets.Revetment.Service + + {3706200E-48C6-4B86-B48C-4E45C69ABE95} + Ringtoets.Revetment.Data.TestUtil + {E7225477-577F-4A17-B7EC-6721158E1543} Ringtoets.GrassCoverErosionOutwards.Data Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/Ringtoets.Revetment.Data.TestUtil.csproj =================================================================== diff -u -rb28507193a2799b3e4a4e5e447693e17e1e121b5 -r260a05afbf1ef2b3466e1588b7ef5fccbe52c43b --- Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/Ringtoets.Revetment.Data.TestUtil.csproj (.../Ringtoets.Revetment.Data.TestUtil.csproj) (revision b28507193a2799b3e4a4e5e447693e17e1e121b5) +++ Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/Ringtoets.Revetment.Data.TestUtil.csproj (.../Ringtoets.Revetment.Data.TestUtil.csproj) (revision 260a05afbf1ef2b3466e1588b7ef5fccbe52c43b) @@ -38,6 +38,10 @@ pdbonly + + ..\..\..\..\packages\NUnit.3.6.0\lib\net40\nunit.framework.dll + True + @@ -48,6 +52,7 @@ + @@ -58,6 +63,14 @@ {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data + + {888d4097-8bc2-4703-9fb1-8744c94d525e} + Ringtoets.HydraRing.Calculation + + + {74CBA865-9338-447F-BAD9-28312446AE84} + Ringtoets.HydraRing.Calculation.TestUtil + {87c2c553-c0bc-40bf-b1ea-b83bff357f27} Ringtoets.Revetment.Data @@ -67,6 +80,7 @@ Copying.licenseheader + + + + \ No newline at end of file Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj =================================================================== diff -u -rc5243e0c3fe02c58c2ee2ef82b383d27b643cd9d -r260a05afbf1ef2b3466e1588b7ef5fccbe52c43b --- Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj (.../Ringtoets.Revetment.Service.Test.csproj) (revision c5243e0c3fe02c58c2ee2ef82b383d27b643cd9d) +++ Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj (.../Ringtoets.Revetment.Service.Test.csproj) (revision 260a05afbf1ef2b3466e1588b7ef5fccbe52c43b) @@ -96,6 +96,10 @@ {2331235F-1E56-4344-ACC2-191C22A39594} Ringtoets.Revetment.Service + + {3706200E-48C6-4B86-B48C-4E45C69ABE95} + Ringtoets.Revetment.Data.TestUtil +