Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationActivity.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -rc2bb1b1360db0abb1d88a284463d66f53f02fe37 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationActivity.cs (.../HeightStructuresCalculationActivity.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationActivity.cs (.../HeightStructuresCalculationActivity.cs) (revision c2bb1b1360db0abb1d88a284463d66f53f02fe37) @@ -81,8 +81,7 @@ calculationService.Calculate(calculation, failureMechanism.GeneralInput, - assessmentSection.HydraulicBoundaryDatabase.FilePath, - assessmentSection.HydraulicBoundaryDatabase.EffectivePreprocessorDirectory()); + HydraulicBoundaryCalculationSettingsFactory.CreateSettings(assessmentSection.HydraulicBoundaryDatabase)); } protected override void OnCancel() Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationActivityFactoryTest.cs =================================================================== diff -u -r6326d845e3bd5e4a5e4dfbf30ba385cbf51dc3c4 -rc2bb1b1360db0abb1d88a284463d66f53f02fe37 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationActivityFactoryTest.cs (.../HeightStructuresCalculationActivityFactoryTest.cs) (revision 6326d845e3bd5e4a5e4dfbf30ba385cbf51dc3c4) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationActivityFactoryTest.cs (.../HeightStructuresCalculationActivityFactoryTest.cs) (revision c2bb1b1360db0abb1d88a284463d66f53f02fe37) @@ -33,6 +33,7 @@ using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Service; +using Ringtoets.Common.Service.TestUtil; using Ringtoets.HeightStructures.Data; using Ringtoets.HeightStructures.Data.TestUtil; using Ringtoets.HydraRing.Calculation.Calculator.Factory; @@ -122,7 +123,7 @@ // Assert Assert.IsInstanceOf(activity); - AssertHeightStructuresCalculationActivity(activity, calculation); + AssertHeightStructuresCalculationActivity(activity, calculation, assessmentSection.HydraulicBoundaryDatabase); mocks.VerifyAll(); } @@ -209,8 +210,9 @@ CollectionAssert.AllItemsAreInstancesOfType(activities, typeof(HeightStructuresCalculationActivity)); Assert.AreEqual(2, activities.Count()); - AssertHeightStructuresCalculationActivity(activities.First(), calculation1); - AssertHeightStructuresCalculationActivity(activities.ElementAt(1), calculation2); + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; + AssertHeightStructuresCalculationActivity(activities.First(), calculation1, hydraulicBoundaryDatabase); + AssertHeightStructuresCalculationActivity(activities.ElementAt(1), calculation2, hydraulicBoundaryDatabase); mocks.VerifyAll(); } @@ -271,8 +273,9 @@ CollectionAssert.AllItemsAreInstancesOfType(activities, typeof(HeightStructuresCalculationActivity)); Assert.AreEqual(2, activities.Count()); - AssertHeightStructuresCalculationActivity(activities.First(), calculation1); - AssertHeightStructuresCalculationActivity(activities.ElementAt(1), calculation2); + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; + AssertHeightStructuresCalculationActivity(activities.First(), calculation1, hydraulicBoundaryDatabase); + AssertHeightStructuresCalculationActivity(activities.ElementAt(1), calculation2, hydraulicBoundaryDatabase); mocks.VerifyAll(); } @@ -289,7 +292,8 @@ } private static void AssertHeightStructuresCalculationActivity(Activity activity, - ICalculation calculation) + ICalculation calculation, + HydraulicBoundaryDatabase hydraulicBoundaryDatabase) { var mocks = new MockRepository(); var testCalculator = new TestStructuresCalculator(); @@ -298,9 +302,9 @@ Arg.Is.NotNull)) .WhenCalled(invocation => { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.IsEmpty(settings.PreprocessorDirectory); + HydraRingCalculationSettingsTestHelper.AssertHydraRingCalculationSettings( + HydraulicBoundaryCalculationSettingsFactory.CreateSettings(hydraulicBoundaryDatabase), + (HydraRingCalculationSettings) invocation.Arguments[0]); }) .Return(testCalculator); mocks.ReplayAll(); Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationServiceTest.cs =================================================================== diff -u -r94aa3f043a2db78b3fabafb0aa4556778eae64bd -rc2bb1b1360db0abb1d88a284463d66f53f02fe37 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationServiceTest.cs (.../HeightStructuresCalculationServiceTest.cs) (revision 94aa3f043a2db78b3fabafb0aa4556778eae64bd) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationServiceTest.cs (.../HeightStructuresCalculationServiceTest.cs) (revision c2bb1b1360db0abb1d88a284463d66f53f02fe37) @@ -49,7 +49,8 @@ public class HeightStructuresCalculationServiceTest { 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] @@ -70,7 +71,7 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, - validFilePath); + validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); const string expectedValidationMessage = "De waarde voor 'Oriëntatie' moet een concreet getal zijn."; @@ -112,7 +113,7 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, - validFilePath); + validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); string expectedValidationMessage = $"De verwachtingswaarde voor '{parameterName}' moet een concreet getal zijn."; @@ -156,7 +157,7 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, - validFilePath); + validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); string expectedValidationMessage = $"De verwachtingswaarde voor '{parameterName}' moet een positief getal zijn."; @@ -203,7 +204,7 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, - validFilePath); + validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); string expectedValidationMessage = $"De standaardafwijking voor '{parameterName}' moet groter zijn dan of gelijk zijn aan 0."; @@ -249,7 +250,7 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, - validFilePath); + validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); string expectedValidationMessage = $"De variatiecoëfficiënt voor '{parameterName}' moet groter zijn dan of gelijk zijn aan 0."; @@ -294,7 +295,7 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, - validFilePath); + validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); var calculation = new TestHeightStructuresCalculation @@ -332,7 +333,7 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, - validFilePath); + validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); var calculation = new TestHeightStructuresCalculation @@ -373,14 +374,8 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator( - Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(null)) + .IgnoreArguments() .Return(new TestStructuresCalculator()); mockRepository.ReplayAll(); @@ -415,8 +410,7 @@ { Action call = () => new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - validPreprocessorDirectory); + CreateCalculationSettings()); // Assert TestHelper.AssertLogMessages(call, messages => @@ -448,14 +442,8 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator( - Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(null)) + .IgnoreArguments() .Return(new TestStructuresCalculator()); mockRepository.ReplayAll(); @@ -475,8 +463,7 @@ { Action call = () => new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - validPreprocessorDirectory); + CreateCalculationSettings()); // Assert TestHelper.AssertLogMessages(call, messages => @@ -506,14 +493,8 @@ var calculator = new TestStructuresCalculator(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator( - Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(null)) + .IgnoreArguments() .Return(calculator); mockRepository.ReplayAll(); @@ -535,8 +516,7 @@ // Call new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - validPreprocessorDirectory); + CreateCalculationSettings()); // Assert StructuresOvertoppingCalculationInput[] overtoppingCalculationInputs = calculator.ReceivedInputs.ToArray(); @@ -587,14 +567,8 @@ var calculator = new TestStructuresCalculator(); var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator( - Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(null)) + .IgnoreArguments() .Return(calculator); mockRepository.ReplayAll(); @@ -618,8 +592,7 @@ // Call new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - validPreprocessorDirectory); + CreateCalculationSettings()); // Assert StructuresOvertoppingCalculationInput[] overtoppingCalculationInputs = calculator.ReceivedInputs.ToArray(); @@ -672,14 +645,8 @@ LastErrorFileContent = "An error occurred" }; var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator( - Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(null)) + .IgnoreArguments() .Return(calculator); mockRepository.ReplayAll(); @@ -702,8 +669,7 @@ { new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - validPreprocessorDirectory); + CreateCalculationSettings()); } catch (HydraRingCalculationException) { @@ -743,14 +709,8 @@ EndInFailure = true }; var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator( - Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(null)) + .IgnoreArguments() .Return(calculator); mockRepository.ReplayAll(); @@ -773,8 +733,7 @@ { new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - validPreprocessorDirectory); + CreateCalculationSettings()); } catch (HydraRingCalculationException) { @@ -814,14 +773,8 @@ LastErrorFileContent = "An error occurred" }; var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator( - Arg.Is.NotNull)) - .WhenCalled(invocation => - { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(validPreprocessorDirectory, settings.PreprocessorDirectory); - }) + calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(null)) + .IgnoreArguments() .Return(calculator); mockRepository.ReplayAll(); @@ -845,8 +798,7 @@ { new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - validPreprocessorDirectory); + CreateCalculationSettings()); } catch (HydraRingCalculationException e) { @@ -874,13 +826,17 @@ } [Test] - [Combinatorial] - public void Calculate_PreprocessorDirectorySet_InputPropertiesCorrectlySentToCalculator([Values(true, false)] bool usePreprocessor) + [TestCase(true)] + [TestCase(false)] + public void Calculate_PreprocessorDirectorySet_InputPropertiesCorrectlySentToCalculator(bool usePreprocessor) { // Setup string preprocessorDirectory = usePreprocessor ? validPreprocessorDirectory : string.Empty; + var calculationSettings = new HydraulicBoundaryCalculationSettings(validHydraulicBoundaryDatabaseFilePath, + validHlcdFilePath, + preprocessorDirectory); var failureMechanism = new HeightStructuresFailureMechanism(); @@ -893,9 +849,8 @@ Arg.Is.NotNull)) .WhenCalled(invocation => { - var settings = (HydraRingCalculationSettings) invocation.Arguments[0]; - Assert.AreEqual(testDataPath, settings.HlcdFilePath); - Assert.AreEqual(preprocessorDirectory, settings.PreprocessorDirectory); + HydraRingCalculationSettingsTestHelper.AssertHydraRingCalculationSettings( + calculationSettings, (HydraRingCalculationSettings) invocation.Arguments[0]); }) .Return(calculator); mockRepository.ReplayAll(); @@ -913,8 +868,7 @@ // Call new HeightStructuresCalculationService().Calculate(calculation, failureMechanism.GeneralInput, - validFilePath, - preprocessorDirectory); + calculationSettings); // Assert StructuresOvertoppingCalculationInput[] calculationInputs = calculator.ReceivedInputs.ToArray(); @@ -927,6 +881,13 @@ mockRepository.VerifyAll(); } + private static HydraulicBoundaryCalculationSettings CreateCalculationSettings() + { + return new HydraulicBoundaryCalculationSettings(validHydraulicBoundaryDatabaseFilePath, + validHlcdFilePath, + string.Empty); + } + #region Test cases private static IEnumerable NormalDistributionsWithInvalidMean