Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs =================================================================== diff -u -r1619a9b99ac7d44c09232b5ad2bcd07392e230ad -r623d00969818278225ff9f2524a4b9e9d3b0b1d8 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 1619a9b99ac7d44c09232b5ad2bcd07392e230ad) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 623d00969818278225ff9f2524a4b9e9d3b0b1d8) @@ -868,28 +868,11 @@ private void CalculateAll(CalculationGroup group, GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext context) { - GrassCoverErosionOutwardsWaveConditionsCalculation[] calculations = group.GetCalculations().OfType().ToArray(); - - CalculateAll(calculations, context.FailureMechanism, context.AssessmentSection); - } - - private void CalculateAll(GrassCoverErosionOutwardsWaveConditionsCalculation[] calculations, - GrassCoverErosionOutwardsFailureMechanism failureMechanism, - IAssessmentSection assessmentSection) - { ActivityProgressDialogRunner.Run( Gui.MainWindow, - calculations - .Select(calculation => new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - assessmentSection.HydraulicBoundaryDatabase.FilePath, - failureMechanism, - assessmentSection)) - .ToList()); - - foreach (GrassCoverErosionOutwardsWaveConditionsCalculation calculation in calculations) - { - calculation.NotifyObservers(); - } + GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivities(group, + context.FailureMechanism, + context.AssessmentSection)); } private static void WaveConditionsCalculationGroupContextOnNodeRemoved(GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext nodeData, @@ -994,11 +977,9 @@ GrassCoverErosionOutwardsWaveConditionsCalculationContext context) { ActivityProgressDialogRunner.Run(Gui.MainWindow, - new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - context.AssessmentSection.HydraulicBoundaryDatabase.FilePath, - context.FailureMechanism, - context.AssessmentSection)); - calculation.NotifyObservers(); + GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + context.FailureMechanism, + context.AssessmentSection)); } private static void WaveConditionsCalculationContextOnNodeRemoved(GrassCoverErosionOutwardsWaveConditionsCalculationContext nodeData, Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/GrassCoverErosionOutwardsWaveConditionsCalculationActivity.cs =================================================================== diff -u -ra494bde768f1b989d31bff6a801a1816d6f9692e -r623d00969818278225ff9f2524a4b9e9d3b0b1d8 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/GrassCoverErosionOutwardsWaveConditionsCalculationActivity.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivity.cs) (revision a494bde768f1b989d31bff6a801a1816d6f9692e) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/GrassCoverErosionOutwardsWaveConditionsCalculationActivity.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivity.cs) (revision 623d00969818278225ff9f2524a4b9e9d3b0b1d8) @@ -31,7 +31,7 @@ /// /// for running a grass cover erosion outwards wave conditions calculation. /// - public class GrassCoverErosionOutwardsWaveConditionsCalculationActivity : CalculatableActivity + internal class GrassCoverErosionOutwardsWaveConditionsCalculationActivity : CalculatableActivity { private readonly GrassCoverErosionOutwardsWaveConditionsCalculation calculation; private readonly string hlcdFilePath; Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/Properties/AssemblyInfo.cs =================================================================== diff -u -r0819cf01b494097b764677be8dd47853e38fc223 -r623d00969818278225ff9f2524a4b9e9d3b0b1d8 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/Properties/AssemblyInfo.cs (.../AssemblyInfo.cs) (revision 0819cf01b494097b764677be8dd47853e38fc223) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/Properties/AssemblyInfo.cs (.../AssemblyInfo.cs) (revision 623d00969818278225ff9f2524a4b9e9d3b0b1d8) @@ -20,6 +20,8 @@ // All rights reserved. using System.Reflection; +using System.Runtime.CompilerServices; [assembly: AssemblyTitle("Ringtoets.GrassCoverErosionOutwards.Service")] -[assembly: AssemblyProduct("Ringtoets.GrassCoverErosionOutwards.Service")] \ No newline at end of file +[assembly: AssemblyProduct("Ringtoets.GrassCoverErosionOutwards.Service")] +[assembly: InternalsVisibleTo("Ringtoets.GrassCoverErosionOutwards.Service.Test")] \ No newline at end of file Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs =================================================================== diff -u -r2ddb550138698d672f34991ff4b325115355cd19 -r623d00969818278225ff9f2524a4b9e9d3b0b1d8 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 2ddb550138698d672f34991ff4b325115355cd19) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 623d00969818278225ff9f2524a4b9e9d3b0b1d8) @@ -33,6 +33,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; +using Ringtoets.Common.Service; using Ringtoets.Common.Service.TestUtil; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.GrassCoverErosionOutwards.Data.TestUtil; @@ -57,7 +58,10 @@ public void Run_CalculationWithInvalidHydraulicBoundaryDatabaseFilePath_DoesNotPerformCalculationAndLogsError() { // Setup + string invalidFilePath = Path.Combine(testDataPath, "NonExisting.sqlite"); AssessmentSectionStub assessmentSection = CreateAssessmentSection(); + assessmentSection.HydraulicBoundaryDatabase.FilePath = invalidFilePath; + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.SetHydraulicBoundaryLocations( failureMechanism, @@ -69,16 +73,13 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - string invalidFilePath = Path.Combine(testDataPath, "NonExisting.sqlite"); - var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); mockRepository.ReplayAll(); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - invalidFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -125,10 +126,9 @@ var calculatorFactory = mockRepository.StrictMock(); mockRepository.ReplayAll(); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -173,10 +173,9 @@ var calculatorFactory = mockRepository.StrictMock(); mockRepository.ReplayAll(); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -215,10 +214,9 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); RoundedDouble[] waterLevels = GetWaterLevels(calculation, failureMechanism, assessmentSection).ToArray(); int nrOfCalculators = waterLevels.Length; @@ -271,10 +269,9 @@ calculation.InputParameters.BreakWater.Type = breakWaterType; - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); var waveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator(); @@ -338,10 +335,9 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); @@ -399,10 +395,9 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); @@ -448,10 +443,9 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); int nrOfCalculators = GetWaterLevels(calculation, failureMechanism, assessmentSection).Count(); @@ -512,7 +506,9 @@ .Times(nrOfCalculators); mockRepository.ReplayAll(); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, validFilePath, failureMechanism, assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call @@ -545,10 +541,9 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); var waveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator { @@ -594,10 +589,9 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); int nrOfCalculators = GetWaterLevels(calculation, failureMechanism, assessmentSection).Count(); var mockRepository = new MockRepository(); @@ -638,10 +632,9 @@ assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = true; assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = validPreprocessorDirectory; - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); int nrOfCalculators = GetWaterLevels(calculation, failureMechanism, assessmentSection).Count(); var mockRepository = new MockRepository(); @@ -682,10 +675,9 @@ assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = false; assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = "InvalidPreprocessorDirectory"; - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); + CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateCalculationActivity(calculation, + failureMechanism, + assessmentSection); int nrOfCalculators = GetWaterLevels(calculation, failureMechanism, assessmentSection).Count(); var mockRepository = new MockRepository(); Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationContextTreeNodeInfoTest.cs =================================================================== diff -u -r4278b8ff350cb0c4629c8609e2b8267af9f5da5b -r623d00969818278225ff9f2524a4b9e9d3b0b1d8 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationContextTreeNodeInfoTest.cs) (revision 4278b8ff350cb0c4629c8609e2b8267af9f5da5b) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationContextTreeNodeInfoTest.cs) (revision 623d00969818278225ff9f2524a4b9e9d3b0b1d8) @@ -1524,9 +1524,6 @@ viewCommands, context, treeViewControl); - var observer = mocks.StrictMock(); - observer.Expect(o => o.UpdateObserver()); - calculation.Attach(observer); var gui = mocks.Stub(); gui.Stub(g => g.Get(context, treeViewControl)).Return(menuBuilder); Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r4278b8ff350cb0c4629c8609e2b8267af9f5da5b -r623d00969818278225ff9f2524a4b9e9d3b0b1d8 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 4278b8ff350cb0c4629c8609e2b8267af9f5da5b) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 623d00969818278225ff9f2524a4b9e9d3b0b1d8) @@ -1160,18 +1160,11 @@ }); ConfigureFailureMechanismWithHydraulicBoundaryOutput(failureMechanism); - var observerA = mocks.StrictMock(); - observerA.Expect(o => o.UpdateObserver()); - var observerB = mocks.StrictMock(); - observerB.Expect(o => o.UpdateObserver()); - var group = new CalculationGroup(); GrassCoverErosionOutwardsWaveConditionsCalculation calculationA = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); calculationA.Name = "A"; GrassCoverErosionOutwardsWaveConditionsCalculation calculationB = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); calculationB.Name = "B"; - calculationA.Attach(observerA); - calculationB.Attach(observerB); group.Children.Add(calculationA); group.Children.Add(calculationB);