Index: Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -re67d118d775751800b5fa699f9110ce311a02405 --- Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs (.../WaveHeightCalculationActivity.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs (.../WaveHeightCalculationActivity.cs) (revision e67d118d775751800b5fa699f9110ce311a02405) @@ -77,8 +77,7 @@ protected override void PerformCalculation() { calculationService.Calculate(hydraulicBoundaryLocationCalculation, - hydraulicBoundaryDatabaseFilePath, - preprocessorDirectory, + new HydraulicBoundaryCalculationSettings(string.Empty, string.Empty, string.Empty), norm, messageProvider); } Index: Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationService.cs =================================================================== diff -u -rdd0aafa3cc9668688c385d38a40c1ab86a1e068b -re67d118d775751800b5fa699f9110ce311a02405 --- Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationService.cs (.../WaveHeightCalculationService.cs) (revision dd0aafa3cc9668688c385d38a40c1ab86a1e068b) +++ Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationService.cs (.../WaveHeightCalculationService.cs) (revision e67d118d775751800b5fa699f9110ce311a02405) @@ -52,29 +52,28 @@ /// Performs a calculation for wave height. /// /// The hydraulic boundary location calculation to perform. - /// The path which points to the hydraulic boundary database file. - /// The preprocessor directory. /// The norm to use during the calculation. + /// The containing all data + /// to perform a hydraulic boundary calculation. /// The object which is used to build log messages. - /// Preprocessing is disabled when equals . - /// Thrown when or - /// is null. + /// Preprocessing is disabled when the preprocessor directory equals . + /// Thrown when , + /// or is null. /// Thrown when /// - /// contains invalid characters. + /// the hydraulic boundary database filepath contains invalid characters. /// The target probability or the calculated probability falls outside the [0.0, 1.0] range and is not . /// /// Thrown when: /// - /// No settings database file could be found at the location of + /// No settings database file could be found at the location of hydraulic boundary database file path /// with the same name. /// Unable to open settings database file. /// Unable to read required data from database file. /// /// Thrown when an error occurs while performing the calculation. public void Calculate(HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation, - string hydraulicBoundaryDatabaseFilePath, - string preprocessorDirectory, + HydraulicBoundaryCalculationSettings calculationSettings, double norm, ICalculationMessageProvider messageProvider) { @@ -83,6 +82,11 @@ throw new ArgumentNullException(nameof(hydraulicBoundaryLocationCalculation)); } + if (calculationSettings == null) + { + throw new ArgumentNullException(nameof(calculationSettings)); + } + if (messageProvider == null) { throw new ArgumentNullException(nameof(messageProvider)); @@ -92,16 +96,14 @@ CalculationServiceHelper.LogCalculationBegin(); - var settings = new HydraRingCalculationSettings(hydraulicBoundaryDatabaseFilePath, preprocessorDirectory); - calculator = HydraRingCalculatorFactory.Instance.CreateWaveHeightCalculator(settings); + calculator = HydraRingCalculatorFactory.Instance.CreateWaveHeightCalculator(HydraRingCalculationSettingsFactory.CreateSettings(calculationSettings)); var exceptionThrown = false; try { PerformCalculation(hydraulicBoundaryLocationCalculation, - hydraulicBoundaryDatabaseFilePath, - !string.IsNullOrEmpty(preprocessorDirectory), + calculationSettings, norm, messageProvider); } @@ -150,27 +152,26 @@ /// Performs a calculation for the wave height. /// /// The hydraulic boundary location calculation to perform. - /// The path which points to the hydraulic boundary database file. - /// Indicator whether to use the preprocessor in the calculation. + /// The containing all data + /// to perform a hydraulic boundary calculation. /// The norm of the assessment section. /// The object which is used to build log messages. /// Thrown when: /// - /// No settings database file could be found at the location of + /// No settings database file could be found at the location of the hydraulic boundary database file path. /// with the same name. /// Unable to open settings database file. /// Unable to read required data from database file. /// /// Thrown when an error occurs while performing the calculation. private void PerformCalculation(HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation, - string hydraulicBoundaryDatabaseFilePath, - bool usePreprocessor, + HydraulicBoundaryCalculationSettings calculationSettings, double norm, ICalculationMessageProvider messageProvider) { HydraulicBoundaryLocation hydraulicBoundaryLocation = hydraulicBoundaryLocationCalculation.HydraulicBoundaryLocation; - WaveHeightCalculationInput calculationInput = CreateInput(hydraulicBoundaryLocation.Id, norm, hydraulicBoundaryDatabaseFilePath, usePreprocessor); + WaveHeightCalculationInput calculationInput = CreateInput(hydraulicBoundaryLocation.Id, norm, calculationSettings); calculator.Calculate(calculationInput); @@ -265,28 +266,28 @@ /// /// The id of the hydraulic boundary location. /// The norm to use during the calculation. - /// The file path to the hydraulic - /// boundary database. - /// Indicator whether to use the preprocessor in the calculation. + /// The containing all data + /// to perform a hydraulic boundary calculation. /// A . - /// Thrown when the + /// Thrown when the hydraulic boundary location file path /// contains invalid characters. /// Thrown when: /// - /// No settings database file could be found at the location of + /// No settings database file could be found at the location of the hydraulic boundary database file path /// with the same name. /// Unable to open settings database file. /// Unable to read required data from database file. /// /// private static WaveHeightCalculationInput CreateInput(long hydraulicBoundaryLocationId, double norm, - string hydraulicBoundaryDatabaseFilePath, - bool usePreprocessor) + HydraulicBoundaryCalculationSettings calculationSettings) { var waveHeightCalculationInput = new WaveHeightCalculationInput(1, hydraulicBoundaryLocationId, norm); - HydraRingSettingsDatabaseHelper.AssignSettingsFromDatabase(waveHeightCalculationInput, hydraulicBoundaryDatabaseFilePath, usePreprocessor); + HydraRingSettingsDatabaseHelper.AssignSettingsFromDatabase(waveHeightCalculationInput, + calculationSettings.HydraulicBoundaryDatabaseFilePath, + !string.IsNullOrEmpty(calculationSettings.PreprocessorDirectory)); return waveHeightCalculationInput; } Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/WaveHeightCalculationServiceTest.cs =================================================================== diff -u -rdd0aafa3cc9668688c385d38a40c1ab86a1e068b -re67d118d775751800b5fa699f9110ce311a02405 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/WaveHeightCalculationServiceTest.cs (.../WaveHeightCalculationServiceTest.cs) (revision dd0aafa3cc9668688c385d38a40c1ab86a1e068b) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/WaveHeightCalculationServiceTest.cs (.../WaveHeightCalculationServiceTest.cs) (revision e67d118d775751800b5fa699f9110ce311a02405) @@ -45,7 +45,8 @@ public class WaveHeightCalculationServiceTest { private static readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); - private static readonly string validFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); + private static readonly string validHydraulicBoundaryDatabaseFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); + private static readonly string validHlcdFilePath = Path.Combine(testDataPath, "Hlcd.sqlite"); private static readonly string validPreprocessorDirectory = TestHelper.GetScratchPadPath(); [Test] @@ -68,8 +69,7 @@ // Call TestDelegate test = () => new WaveHeightCalculationService().Calculate(null, - testDataPath, - validPreprocessorDirectory, + HydraulicBoundaryCalculationSettingsTestFactory.CreateSettings(), 1, calculationMessageProvider); @@ -80,12 +80,32 @@ } [Test] + public void Calculate_CalculationSettingsNull_ThrowsArgumentNullException() + { + // Setup + var mockRepository = new MockRepository(); + var calculationMessageProvider = mockRepository.Stub(); + mockRepository.ReplayAll(); + + // Call + TestDelegate call = () => new WaveHeightCalculationService().Calculate(new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation()), + null, + 1, + calculationMessageProvider); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("calculationSettings", exception.ParamName); + + mockRepository.VerifyAll(); + } + + [Test] public void Calculate_MessageProviderNull_ThrowArgumentNullException() { // Call TestDelegate test = () => new WaveHeightCalculationService().Calculate(new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation()), - string.Empty, - string.Empty, + HydraulicBoundaryCalculationSettingsTestFactory.CreateSettings(), 1, null); @@ -97,64 +117,53 @@ [Test] [TestCase(true)] [TestCase(false)] - public void Calculate_ValidWaveHeightCalculationAndConverges_StartsCalculationWithRightParametersAndLogs(bool readIllustrationPoints) + public void Calculate_ValidData_StartsCalculationWithRightParameters(bool usePreprocessor) { // Setup const double norm = 1.0 / 30; + string preprocessorDirectory = usePreprocessor + ? validPreprocessorDirectory + : string.Empty; var calculator = new TestWaveHeightCalculator { - IllustrationPointsResult = new TestGeneralResult(), Converged = true }; + var calculationSettings = new HydraulicBoundaryCalculationSettings(validHydraulicBoundaryDatabaseFilePath, + validHlcdFilePath, + preprocessorDirectory); + var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) .WhenCalled(invocation => { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); + var hydraRingCalculationSettings = (HydraRingCalculationSettings) invocation.Arguments[0]; + HydraRingCalculationSettingsTestHelper.AssertHydraRingCalculationSettings(calculationSettings, + hydraRingCalculationSettings); }) .Return(calculator); var calculationMessageProvider = mockRepository.StrictMock(); mockRepository.ReplayAll(); var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); - var hydraulicBoundaryLocationCalculation = new HydraulicBoundaryLocationCalculation(hydraulicBoundaryLocation) - { - InputParameters = - { - ShouldIllustrationPointsBeCalculated = readIllustrationPoints - } - }; + var hydraulicBoundaryLocationCalculation = new HydraulicBoundaryLocationCalculation(hydraulicBoundaryLocation); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - Action call = () => new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, - norm, - calculationMessageProvider); + new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, + calculationSettings, + norm, + calculationMessageProvider); // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertCalculationStartMessage(msgs[0]); - Assert.AreEqual($"Golfhoogte berekening is uitgevoerd op de tijdelijke locatie '{calculator.OutputDirectory}'. " + - "Gedetailleerde invoer en uitvoer kan in de bestanden op deze locatie worden gevonden.", msgs[1]); - CalculationServiceTestHelper.AssertCalculationEndMessage(msgs[2]); - }); - AssessmentLevelCalculationInput expectedInput = CreateInput(hydraulicBoundaryLocation.Id, norm); - AssertInput(expectedInput, calculator.ReceivedInputs.Single()); + WaveHeightCalculationInput actualInput = calculator.ReceivedInputs.Single(); + AssertInput(expectedInput, actualInput); Assert.IsFalse(calculator.IsCanceled); - Assert.IsNotNull(hydraulicBoundaryLocationCalculation.Output); - Assert.AreEqual(readIllustrationPoints, hydraulicBoundaryLocationCalculation.Output.HasGeneralResult); + Assert.AreEqual(usePreprocessor, actualInput.PreprocessorSetting.RunPreprocessor); } mockRepository.VerifyAll(); @@ -163,12 +172,9 @@ [Test] [TestCase(true)] [TestCase(false)] - public void Calculate_ValidWaveHeightCalculationWithPreprocessorDirectory_StartsCalculationWithRightParameters(bool usePreprocessor) + public void Calculate_ValidWaveHeightCalculationAndConverges_SetsOutputAndLogs(bool readIllustrationPoints) { // Setup - string preprocessorDirectory = usePreprocessor - ? validPreprocessorDirectory - : string.Empty; var calculator = new TestWaveHeightCalculator { @@ -178,31 +184,44 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(preprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.StrictMock(); mockRepository.ReplayAll(); - var hydraulicBoundaryLocationCalculation = new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation()); + var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); + var hydraulicBoundaryLocationCalculation = new HydraulicBoundaryLocationCalculation(hydraulicBoundaryLocation) + { + InputParameters = + { + ShouldIllustrationPointsBeCalculated = readIllustrationPoints + } + }; using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - // Call - new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - preprocessorDirectory, - 1.0 / 30, - calculationMessageProvider); + Action call = () => new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, + CreateCalculationSettings(), + 1.0 / 30, + calculationMessageProvider); // Assert - Assert.AreEqual(usePreprocessor, calculator.ReceivedInputs.Single().PreprocessorSetting.RunPreprocessor); + TestHelper.AssertLogMessages(call, messages => + { + string[] msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + CalculationServiceTestHelper.AssertCalculationStartMessage(msgs[0]); + Assert.AreEqual($"Golfhoogte berekening is uitgevoerd op de tijdelijke locatie '{calculator.OutputDirectory}'. " + + "Gedetailleerde invoer en uitvoer kan in de bestanden op deze locatie worden gevonden.", msgs[1]); + CalculationServiceTestHelper.AssertCalculationEndMessage(msgs[2]); + }); + + Assert.IsFalse(calculator.IsCanceled); + HydraulicBoundaryLocationCalculationOutput actualOutput = hydraulicBoundaryLocationCalculation.Output; + Assert.IsNotNull(actualOutput); + Assert.AreEqual(readIllustrationPoints, actualOutput.HasGeneralResult); } mockRepository.VerifyAll(); @@ -214,7 +233,6 @@ public void Calculate_ValidWaveHeightCalculationAndDoesNotConverge_SetsOutputAndLogs(bool readIllustrationPoints) { // Setup - const double norm = 1.0 / 30; const string locationName = "locationName"; const string failedConvergenceMessage = "failedConvergenceMessage"; @@ -226,13 +244,8 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.StrictMock(); @@ -253,9 +266,8 @@ Action call = () => { new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, - norm, + CreateCalculationSettings(), + 1.0 / 30, calculationMessageProvider); }; @@ -271,12 +283,10 @@ CalculationServiceTestHelper.AssertCalculationEndMessage(msgs[3]); }); - AssessmentLevelCalculationInput expectedInput = CreateInput(hydraulicBoundaryLocation.Id, norm); - AssertInput(expectedInput, calculator.ReceivedInputs.Single()); - Assert.IsFalse(calculator.IsCanceled); - Assert.IsNotNull(hydraulicBoundaryLocationCalculation.Output); - Assert.AreEqual(readIllustrationPoints, hydraulicBoundaryLocationCalculation.Output.HasGeneralResult); + HydraulicBoundaryLocationCalculationOutput actualOutput = hydraulicBoundaryLocationCalculation.Output; + Assert.IsNotNull(actualOutput); + Assert.AreEqual(readIllustrationPoints, actualOutput.HasGeneralResult); } mockRepository.VerifyAll(); @@ -294,13 +304,8 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.StrictMock(); @@ -318,8 +323,7 @@ { // Call Action call = () => new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, + CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); @@ -360,13 +364,8 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.StrictMock(); @@ -384,8 +383,7 @@ { // Call Action call = () => new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, + CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); @@ -428,13 +426,8 @@ calculator.Stub(c => c.OutputDirectory).Return(string.Empty); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.Stub(); @@ -447,8 +440,7 @@ { // Call TestDelegate call = () => new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, + CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); @@ -473,13 +465,8 @@ }; var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.Stub(); @@ -497,8 +484,7 @@ { // Call Action call = () => new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, + CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); @@ -531,13 +517,8 @@ }; var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.Stub(); @@ -549,8 +530,7 @@ { // Call Action call = () => new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, + CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); @@ -577,13 +557,8 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.Stub(); @@ -598,8 +573,7 @@ // Call service.Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, + CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); @@ -629,13 +603,8 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(validFilePath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateWaveHeightCalculator(null)) + .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.Stub(); @@ -666,8 +635,7 @@ try { new WaveHeightCalculationService().Calculate(hydraulicBoundaryLocationCalculation, - validFilePath, - validPreprocessorDirectory, + CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); } @@ -695,6 +663,13 @@ mockRepository.VerifyAll(); } + private static HydraulicBoundaryCalculationSettings CreateCalculationSettings() + { + return new HydraulicBoundaryCalculationSettings(validHydraulicBoundaryDatabaseFilePath, + validHlcdFilePath, + string.Empty); + } + private static void AssertInput(AssessmentLevelCalculationInput expectedInput, HydraRingCalculationInput hydraRingCalculationInput) { Assert.AreEqual(expectedInput.Section.SectionId, hydraRingCalculationInput.Section.SectionId);