Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -r4b6e29ab07507a1383536a277e8b450cfa76e780 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs (.../HydraRingCalculatorBase.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs (.../HydraRingCalculatorBase.cs) (revision 4b6e29ab07507a1383536a277e8b450cfa76e780) @@ -79,6 +79,28 @@ } /// + /// Creates a new instance of with a default Hydra-Ring file parser + /// initialized. + /// + /// The directory in which the hydraulic boundary database can be found. + /// Preprocessing is disabled when + /// equals . + /// Thrown when is null. + protected HydraRingCalculatorBase(HydraRingCalculationSettings calculationSettings) + { + if (calculationSettings == null) + { + throw new ArgumentNullException(nameof(calculationSettings)); + } + + hlcdDirectory = calculationSettings.HydraulicBoundaryLocationsConfigurationFilePath; + preprocessorDirectory = calculationSettings.PreprocessorDirectory; + + lastErrorFileParser = new LastErrorFileParser(); + illustrationPointsParser = new IllustrationPointsParser(); + } + + /// /// Gets the temporary output directory that is generated during the calculation. /// public string OutputDirectory { get; private set; } Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/HydraRingCalculatorBaseTest.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -r4b6e29ab07507a1383536a277e8b450cfa76e780 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/HydraRingCalculatorBaseTest.cs (.../HydraRingCalculatorBaseTest.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/HydraRingCalculatorBaseTest.cs (.../HydraRingCalculatorBaseTest.cs) (revision 4b6e29ab07507a1383536a277e8b450cfa76e780) @@ -78,6 +78,17 @@ } [Test] + public void Constructor_CalculationSettingsNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => new TestHydraRingCalculator(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("calculationSettings", exception.ParamName); + } + + [Test] public void Calculate_WithCustomParser_ParsersExecutedAndOutputSet() { // Setup @@ -172,6 +183,8 @@ public TestHydraRingCalculator(string hlcdDirectory, string preprocessorDirectory) : base(hlcdDirectory, preprocessorDirectory) {} + public TestHydraRingCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) {} + public TestHydraRingCalculator(string hlcdDirectory, string preprocessorDirectory, IHydraRingFileParser parser) : base(hlcdDirectory, preprocessorDirectory) { this.parser = parser;