Index: Ringtoets/Common/src/Ringtoets.Common.Forms/GuiServices/HydraulicBoundaryLocationCalculationGuiService.cs =================================================================== diff -u -ree6a3b6a2c63799f459b0735f660de5703abdc3b -r1d54902642a3e1bf3b173afa85cebfa52afb0c15 --- Ringtoets/Common/src/Ringtoets.Common.Forms/GuiServices/HydraulicBoundaryLocationCalculationGuiService.cs (.../HydraulicBoundaryLocationCalculationGuiService.cs) (revision ee6a3b6a2c63799f459b0735f660de5703abdc3b) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/GuiServices/HydraulicBoundaryLocationCalculationGuiService.cs (.../HydraulicBoundaryLocationCalculationGuiService.cs) (revision 1d54902642a3e1bf3b173afa85cebfa52afb0c15) @@ -114,7 +114,8 @@ RunActivities(hydraulicBoundaryDatabaseFilePath, preprocessorDirectory, - locations.Select(location => new WaveHeightCalculationActivity(new HydraulicBoundaryCalculationWrapper(location, getCalculationFunc(location)), + locations.Select(location => new WaveHeightCalculationActivity(location, + getCalculationFunc(location), hydraulicBoundaryDatabaseFilePath, preprocessorDirectory, norm, Index: Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs =================================================================== diff -u -rfc4f536da3543bb4d5367d240ed1aef5aa7655da -r1d54902642a3e1bf3b173afa85cebfa52afb0c15 --- Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs (.../WaveHeightCalculationActivity.cs) (revision fc4f536da3543bb4d5367d240ed1aef5aa7655da) +++ Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs (.../WaveHeightCalculationActivity.cs) (revision 1d54902642a3e1bf3b173afa85cebfa52afb0c15) @@ -37,49 +37,58 @@ private readonly string preprocessorDirectory; private readonly ICalculationMessageProvider messageProvider; private readonly WaveHeightCalculationService calculationService; - private readonly HydraulicBoundaryCalculationWrapper calculationWrapper; + private readonly HydraulicBoundaryLocation hydraulicBoundaryLocation; + private readonly HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation; /// /// Creates a new instance of . /// - /// The to perform the calculation for. + /// The hydraulic boundary location the belongs to. + /// The hydraulic boundary location calculation to perform. /// The hydraulic boundary database file that should be used for performing the calculation. /// The preprocessor directory. /// The norm to use during the calculation. /// The provider of the messages to use during the calculation. /// Preprocessing is disabled when equals . - /// Thrown when or - /// is null. - public WaveHeightCalculationActivity(HydraulicBoundaryCalculationWrapper calculationWrapper, + /// Thrown when , + /// or is null. + public WaveHeightCalculationActivity(HydraulicBoundaryLocation hydraulicBoundaryLocation, + HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation, string hydraulicBoundaryDatabaseFilePath, string preprocessorDirectory, double norm, ICalculationMessageProvider messageProvider) { - if (calculationWrapper == null) + if (hydraulicBoundaryLocation == null) { - throw new ArgumentNullException(nameof(calculationWrapper)); + throw new ArgumentNullException(nameof(hydraulicBoundaryLocation)); } + if (hydraulicBoundaryLocationCalculation == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryLocationCalculation)); + } + if (messageProvider == null) { throw new ArgumentNullException(nameof(messageProvider)); } - this.calculationWrapper = calculationWrapper; + this.hydraulicBoundaryLocation = hydraulicBoundaryLocation; + this.hydraulicBoundaryLocationCalculation = hydraulicBoundaryLocationCalculation; this.messageProvider = messageProvider; this.hydraulicBoundaryDatabaseFilePath = hydraulicBoundaryDatabaseFilePath; this.preprocessorDirectory = preprocessorDirectory; this.norm = norm; - Description = messageProvider.GetActivityDescription(calculationWrapper.Name); + Description = messageProvider.GetActivityDescription(hydraulicBoundaryLocation.Name); calculationService = new WaveHeightCalculationService(); } protected override bool Validate() { - if (AlreadyCalculated) + if (hydraulicBoundaryLocationCalculation.IsCalculated()) { State = ActivityState.Skipped; return true; @@ -92,7 +101,8 @@ { if (State != ActivityState.Skipped) { - calculationService.Calculate(calculationWrapper, + calculationService.Calculate(hydraulicBoundaryLocation, + hydraulicBoundaryLocationCalculation, hydraulicBoundaryDatabaseFilePath, preprocessorDirectory, norm, @@ -107,15 +117,7 @@ protected override void OnFinish() { - calculationWrapper.ObservableObject.NotifyObservers(); + hydraulicBoundaryLocation.NotifyObservers(); } - - private bool AlreadyCalculated - { - get - { - return calculationWrapper.IsCalculated(); - } - } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/WaveHeightCalculationActivityTest.cs =================================================================== diff -u -r1e374c6bbc16754d126342f1f5b6e3e92721707a -r1d54902642a3e1bf3b173afa85cebfa52afb0c15 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/WaveHeightCalculationActivityTest.cs (.../WaveHeightCalculationActivityTest.cs) (revision 1e374c6bbc16754d126342f1f5b6e3e92721707a) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/WaveHeightCalculationActivityTest.cs (.../WaveHeightCalculationActivityTest.cs) (revision 1d54902642a3e1bf3b173afa85cebfa52afb0c15) @@ -78,15 +78,17 @@ const string locationName = "locationName"; const string activityDescription = "activityDescription"; - var calculation = new HydraulicBoundaryLocationCalculation(); - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(new TestHydraulicBoundaryLocation(locationName), calculation); - var calculationMessageProvider = mockRepository.Stub(); calculationMessageProvider.Stub(calc => calc.GetActivityDescription(locationName)).Return(activityDescription); mockRepository.ReplayAll(); // Call - var activity = new WaveHeightCalculationActivity(calculationWrapper, validFilePath, validPreprocessorDirectory, 1, calculationMessageProvider); + var activity = new WaveHeightCalculationActivity(new TestHydraulicBoundaryLocation(locationName), + new HydraulicBoundaryLocationCalculation(), + validFilePath, + validPreprocessorDirectory, + 1, + calculationMessageProvider); // Assert Assert.IsInstanceOf(activity); @@ -99,30 +101,58 @@ [Test] public void ParameteredConstructor_CalculationServiceMessageProviderNull_ThrowsArgumentNullException() { + // Call + TestDelegate call = () => new WaveHeightCalculationActivity(new TestHydraulicBoundaryLocation(), + new HydraulicBoundaryLocationCalculation(), + validFilePath, + validPreprocessorDirectory, + 1, + null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("messageProvider", exception.ParamName); + } + + [Test] + public void ParameteredConstructor_HydraulicBoundaryLocationNull_ThrowsArgumentNullException() + { // Setup - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(new TestHydraulicBoundaryLocation(), new HydraulicBoundaryLocationCalculation()); + var calculationMessageProvider = mockRepository.StrictMock(); + mockRepository.ReplayAll(); // Call - TestDelegate call = () => new WaveHeightCalculationActivity(calculationWrapper, validFilePath, validPreprocessorDirectory, 1, null); + TestDelegate call = () => new WaveHeightCalculationActivity(null, + new HydraulicBoundaryLocationCalculation(), + validFilePath, + validPreprocessorDirectory, + 1, + calculationMessageProvider); // Assert var exception = Assert.Throws(call); - Assert.AreEqual("messageProvider", exception.ParamName); + Assert.AreEqual("hydraulicBoundaryLocation", exception.ParamName); + mockRepository.VerifyAll(); } [Test] - public void ParameteredConstructor_CalculationWrapperNull_ThrowsArgumentNullException() + public void ParameteredConstructor_HydraulicBoundaryLocationCalculationNull_ThrowsArgumentNullException() { // Setup var calculationMessageProvider = mockRepository.StrictMock(); mockRepository.ReplayAll(); // Call - TestDelegate call = () => new WaveHeightCalculationActivity(null, validFilePath, validPreprocessorDirectory, 1, calculationMessageProvider); + TestDelegate call = () => new WaveHeightCalculationActivity(new TestHydraulicBoundaryLocation(), + null, + validFilePath, + validPreprocessorDirectory, + 1, + calculationMessageProvider); // Assert var exception = Assert.Throws(call); - Assert.AreEqual("calculationWrapper", exception.ParamName); + Assert.AreEqual("hydraulicBoundaryLocationCalculation", exception.ParamName); mockRepository.VerifyAll(); } @@ -134,13 +164,16 @@ const string locationName = "testLocation"; const string activityDescription = "activityDescription"; - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(new TestHydraulicBoundaryLocation(locationName), new HydraulicBoundaryLocationCalculation()); - var calculationMessageProvider = mockRepository.StrictMock(); calculationMessageProvider.Stub(calc => calc.GetActivityDescription(locationName)).Return(activityDescription); mockRepository.ReplayAll(); - var activity = new WaveHeightCalculationActivity(calculationWrapper, invalidFilePath, validPreprocessorDirectory, 1, calculationMessageProvider); + var activity = new WaveHeightCalculationActivity(new TestHydraulicBoundaryLocation(locationName), + new HydraulicBoundaryLocationCalculation(), + invalidFilePath, + validPreprocessorDirectory, + 1, + calculationMessageProvider); // Call Action call = () => activity.Run(); @@ -166,13 +199,12 @@ const string locationName = "testLocation"; const string activityDescription = "activityDescription"; - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(new TestHydraulicBoundaryLocation(locationName), new HydraulicBoundaryLocationCalculation()); - var calculationMessageProvider = mockRepository.StrictMock(); calculationMessageProvider.Expect(calc => calc.GetActivityDescription(locationName)).Return(activityDescription); mockRepository.ReplayAll(); - var activity = new WaveHeightCalculationActivity(calculationWrapper, + var activity = new WaveHeightCalculationActivity(new TestHydraulicBoundaryLocation(locationName), + new HydraulicBoundaryLocationCalculation(), validFilePath, invalidPreprocessorDirectory, 1, @@ -203,7 +235,6 @@ const string activityDescription = "activityDescription"; const double norm = 1.0 / 30; - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(new TestHydraulicBoundaryLocation(locationName), new HydraulicBoundaryLocationCalculation()); var calculator = new TestWaveHeightCalculator { Converged = true @@ -215,7 +246,8 @@ calculationMessageProvider.Stub(calc => calc.GetActivityDescription(locationName)).Return(activityDescription); mockRepository.ReplayAll(); - var activity = new WaveHeightCalculationActivity(calculationWrapper, + var activity = new WaveHeightCalculationActivity(new TestHydraulicBoundaryLocation(locationName), + new HydraulicBoundaryLocationCalculation(), validFilePath, validPreprocessorDirectory, norm, @@ -240,7 +272,7 @@ }); WaveHeightCalculationInput waveHeightCalculationInput = calculator.ReceivedInputs.Single(); - Assert.AreEqual(calculationWrapper.Id, waveHeightCalculationInput.HydraulicBoundaryLocationId); + Assert.AreEqual(new HydraulicBoundaryCalculationWrapper(new TestHydraulicBoundaryLocation(locationName), new HydraulicBoundaryLocationCalculation()).Id, waveHeightCalculationInput.HydraulicBoundaryLocationId); Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(norm), waveHeightCalculationInput.Beta); } @@ -269,9 +301,8 @@ Output = new TestHydraulicBoundaryLocationOutput(3.0, CalculationConvergence.CalculatedConverged) }; - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(hydraulicBoundaryLocation, hydraulicBoundaryLocationCalculation); - - var activity = new WaveHeightCalculationActivity(calculationWrapper, + var activity = new WaveHeightCalculationActivity(hydraulicBoundaryLocation, + hydraulicBoundaryLocationCalculation, validFilePath, validPreprocessorDirectory, norm, @@ -313,9 +344,8 @@ calculationMessageProvider.Stub(calc => calc.GetActivityDescription(locationName)).Return(string.Empty); mockRepository.ReplayAll(); - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(hydraulicBoundaryLocation, hydraulicBoundaryLocationCalculation); - - var activity = new WaveHeightCalculationActivity(calculationWrapper, + var activity = new WaveHeightCalculationActivity(hydraulicBoundaryLocation, + hydraulicBoundaryLocationCalculation, validFilePath, validPreprocessorDirectory, norm, @@ -382,9 +412,8 @@ Output = output }; - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(hydraulicBoundaryLocation, hydraulicBoundaryLocationCalculation); - - var activity = new WaveHeightCalculationActivity(calculationWrapper, + var activity = new WaveHeightCalculationActivity(hydraulicBoundaryLocation, + hydraulicBoundaryLocationCalculation, validFilePath, validPreprocessorDirectory, 30, @@ -434,10 +463,9 @@ Output = new TestHydraulicBoundaryLocationOutput(double.NaN, CalculationConvergence.CalculatedConverged) }; - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(hydraulicBoundaryLocation, hydraulicBoundaryLocationCalculation); - const double norm = 1.0 / 300; - var activity = new WaveHeightCalculationActivity(calculationWrapper, + var activity = new WaveHeightCalculationActivity(hydraulicBoundaryLocation, + hydraulicBoundaryLocationCalculation, validFilePath, validPreprocessorDirectory, norm, @@ -494,10 +522,9 @@ calculationMessageProvider.Stub(calc => calc.GetCalculatedNotConvergedMessage(locationName)).Return(string.Empty); mockRepository.ReplayAll(); - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(hydraulicBoundaryLocation, new HydraulicBoundaryLocationCalculation()); - const double norm = 1.0 / 30; - var activity = new WaveHeightCalculationActivity(calculationWrapper, + var activity = new WaveHeightCalculationActivity(hydraulicBoundaryLocation, + new HydraulicBoundaryLocationCalculation(), validFilePath, validPreprocessorDirectory, norm, @@ -524,15 +551,15 @@ { // Setup var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); - var calculationWrapper = new HydraulicBoundaryCalculationWrapper(hydraulicBoundaryLocation, new HydraulicBoundaryLocationCalculation()); var calculationMessageProvider = mockRepository.Stub(); var observer = mockRepository.StrictMock(); observer.Expect(o => o.UpdateObserver()); hydraulicBoundaryLocation.Attach(observer); mockRepository.ReplayAll(); - var activity = new TestWaveHeightCalculationActivity(calculationWrapper, + var activity = new TestWaveHeightCalculationActivity(hydraulicBoundaryLocation, + new HydraulicBoundaryLocationCalculation(), validFilePath, validPreprocessorDirectory, 1.0, @@ -548,13 +575,15 @@ private class TestWaveHeightCalculationActivity : WaveHeightCalculationActivity { - public TestWaveHeightCalculationActivity(HydraulicBoundaryCalculationWrapper calculationWrapper, + public TestWaveHeightCalculationActivity(HydraulicBoundaryLocation hydraulicBoundaryLocation, + HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation, string hydraulicBoundaryDatabaseFilePath, string preprocessorDirectory, double norm, ICalculationMessageProvider messageProvider, ActivityState state) - : base(calculationWrapper, + : base(hydraulicBoundaryLocation, + hydraulicBoundaryLocationCalculation, hydraulicBoundaryDatabaseFilePath, preprocessorDirectory, norm,