Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs =================================================================== diff -u -r9b2125ce148137d1b6103557707d81f4771be6bf -r27857505f9a4350b73ad67d8017680d9b068a59d --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs (.../DuneErosionBoundaryCalculationActivity.cs) (revision 9b2125ce148137d1b6103557707d81f4771be6bf) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs (.../DuneErosionBoundaryCalculationActivity.cs) (revision 27857505f9a4350b73ad67d8017680d9b068a59d) @@ -42,38 +42,30 @@ /// /// Creates a new instance of . /// - /// The to perform the calculation for. /// The 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. /// Preprocessing is disabled when /// equals . - /// Thrown when or - /// is null. - public DuneErosionBoundaryCalculationActivity(DuneLocation duneLocation, - DuneLocationCalculation duneLocationCalculation, + /// Thrown when is null. + public DuneErosionBoundaryCalculationActivity(DuneLocationCalculation duneLocationCalculation, string hydraulicBoundaryDatabaseFilePath, string preprocessorDirectory, double norm) { - if (duneLocation == null) - { - throw new ArgumentNullException(nameof(duneLocation)); - } - if (duneLocationCalculation == null) { throw new ArgumentNullException(nameof(duneLocationCalculation)); } - this.duneLocation = duneLocation; this.duneLocationCalculation = duneLocationCalculation; this.hydraulicBoundaryDatabaseFilePath = hydraulicBoundaryDatabaseFilePath; this.preprocessorDirectory = preprocessorDirectory; this.norm = norm; + duneLocation = duneLocationCalculation.DuneLocation; Description = string.Format(Resources.DuneErosionBoundaryCalculationActivity_Calculate_hydraulic_boundary_conditions_for_DuneLocation_with_name_0_, duneLocation.Name); @@ -95,8 +87,7 @@ { if (State != ActivityState.Skipped) { - calculationService.Calculate(duneLocation, - duneLocationCalculation, + calculationService.Calculate(duneLocationCalculation, norm, hydraulicBoundaryDatabaseFilePath, preprocessorDirectory); @@ -111,6 +102,7 @@ protected override void OnFinish() { duneLocation.NotifyObservers(); + duneLocationCalculation.NotifyObservers(); } private bool AlreadyCalculated Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs =================================================================== diff -u -rc743d1f229ff553fff9a05964c1adac6e510df4a -r27857505f9a4350b73ad67d8017680d9b068a59d --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs (.../DuneErosionBoundaryCalculationActivityIntegrationTest.cs) (revision c743d1f229ff553fff9a05964c1adac6e510df4a) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs (.../DuneErosionBoundaryCalculationActivityIntegrationTest.cs) (revision 27857505f9a4350b73ad67d8017680d9b068a59d) @@ -53,17 +53,9 @@ .Return(new TestDunesBoundaryConditionsCalculator()); mockRepository.ReplayAll(); - var duneLocation = new DuneLocation(1300001, "test", new Point2D(0, 0), - new DuneLocation.ConstructionProperties - { - CoastalAreaId = 3, - Offset = 0, - Orientation = 0, - D50 = 0.000007 - }); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var duneLocation = new TestDuneLocation("A dune location name"); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 1.0 / 30000); @@ -115,17 +107,8 @@ .Return(calculator); mockRepository.ReplayAll(); - var duneLocation = new DuneLocation(1300001, "test", new Point2D(0, 0), - new DuneLocation.ConstructionProperties - { - CoastalAreaId = 3, - Offset = 0, - Orientation = 0, - D50 = 0.000007 - }); var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 1.0 / 30000); @@ -151,13 +134,11 @@ mockRepository.ReplayAll(); var initialOutput = new TestDuneLocationOutput(); - var duneLocation = new TestDuneLocation(); var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()) { Output = initialOutput }; - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 1.0 / 30000); Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationActivityTest.cs =================================================================== diff -u -rc743d1f229ff553fff9a05964c1adac6e510df4a -r27857505f9a4350b73ad67d8017680d9b068a59d --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationActivityTest.cs (.../DuneErosionBoundaryCalculationActivityTest.cs) (revision c743d1f229ff553fff9a05964c1adac6e510df4a) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationActivityTest.cs (.../DuneErosionBoundaryCalculationActivityTest.cs) (revision 27857505f9a4350b73ad67d8017680d9b068a59d) @@ -59,11 +59,10 @@ { // Setup var duneLocation = new TestDuneLocation(); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); // Call - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 1.0 / 30000); @@ -76,32 +75,16 @@ } [Test] - public void Constructor_DuneLocationNull_ThrowArgumentNullException() + public void Constructor_DuneLocationCalculationNull_ThrowArgumentNullException() { // Call TestDelegate test = () => new DuneErosionBoundaryCalculationActivity(null, - new DuneLocationCalculation(new TestDuneLocation()), validFilePath, validPreprocessorDirectory, 1.0 / 30000); // Assert var exception = Assert.Throws(test); - Assert.AreEqual("duneLocation", exception.ParamName); - } - - [Test] - public void Constructor_DuneLocationCalculationNull_ThrowArgumentNullException() - { - // Call - TestDelegate test = () => new DuneErosionBoundaryCalculationActivity(new TestDuneLocation(), - null, - validFilePath, - validPreprocessorDirectory, - 1.0 / 30000); - - // Assert - var exception = Assert.Throws(test); Assert.AreEqual("duneLocationCalculation", exception.ParamName); } @@ -111,12 +94,10 @@ // Setup string invalidFilePath = Path.Combine(testDataPath, "notexisting.sqlite"); - const string locationName = "testLocation"; - var duneLocation = new TestDuneLocation(locationName); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); + var duneLocation = new TestDuneLocation("testLocation"); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, invalidFilePath, validPreprocessorDirectory, 0.5); @@ -130,7 +111,7 @@ string[] msgs = messages.ToArray(); Assert.AreEqual(4, msgs.Length); - Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{locationName}' is gestart.", msgs[0]); + Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{duneLocation.Name}' is gestart.", msgs[0]); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[1]); StringAssert.StartsWith("Herstellen van de verbinding met de hydraulische randvoorwaardendatabase is mislukt. Fout bij het lezen van bestand", msgs[2]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[3]); @@ -143,12 +124,10 @@ { // Setup const string invalidPreprocessorDirectory = "NonExistingPreprocessorDirectory"; - const string locationName = "testLocation"; - var duneLocation = new TestDuneLocation(locationName); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); + var duneLocation = new TestDuneLocation("testLocation"); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, invalidPreprocessorDirectory, 0.5); @@ -162,7 +141,7 @@ string[] msgs = messages.ToArray(); Assert.AreEqual(4, msgs.Length); - Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{locationName}' is gestart.", msgs[0]); + Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{duneLocation.Name}' is gestart.", msgs[0]); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[1]); Assert.AreEqual("De bestandsmap waar de preprocessor bestanden opslaat is ongeldig. De bestandsmap bestaat niet.", msgs[2]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[3]); @@ -176,9 +155,8 @@ // Setup const double norm = 1.0 / 30; - const string locationName = "some name"; - var duneLocation = new TestDuneLocation(locationName); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); + var duneLocation = new TestDuneLocation("some name"); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); var calculator = new TestDunesBoundaryConditionsCalculator { Converged = true @@ -188,8 +166,7 @@ calculatorFactory.Expect(cf => cf.CreateDunesBoundaryConditionsCalculator(testDataPath, validPreprocessorDirectory)).Return(calculator); mockRepository.ReplayAll(); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, norm); @@ -204,7 +181,7 @@ { string[] messages = m.ToArray(); Assert.AreEqual(6, messages.Length); - Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{locationName}' is gestart.", messages[0]); + Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{duneLocation.Name}' is gestart.", messages[0]); CalculationServiceTestHelper.AssertValidationStartMessage(messages[1]); CalculationServiceTestHelper.AssertValidationEndMessage(messages[2]); CalculationServiceTestHelper.AssertCalculationStartMessage(messages[3]); @@ -226,14 +203,12 @@ public void Run_DuneLocationOutputSet_ValidationAndCalculationNotPerformedAndStateSkipped() { // Setup - var duneLocation = new TestDuneLocation("locationName"); var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()) { Output = new DuneLocationOutput(CalculationConvergence.CalculatedConverged, new DuneLocationOutput.ConstructionProperties()) }; - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 0.5); @@ -256,7 +231,6 @@ double expectedWavePeriod = random.NextDouble(); double expectedReliabilityIndex = random.NextDouble(); - var duneLocation = new TestDuneLocation(); var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); var calculator = new TestDunesBoundaryConditionsCalculator { @@ -271,8 +245,7 @@ calculatorFactory.Expect(cf => cf.CreateDunesBoundaryConditionsCalculator(testDataPath, validPreprocessorDirectory)).Return(calculator); mockRepository.ReplayAll(); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, norm); @@ -313,10 +286,9 @@ mockRepository.ReplayAll(); var duneLocation = new TestDuneLocation("dune location"); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 0.5); @@ -347,12 +319,10 @@ calculatorFactory.Expect(cf => cf.CreateDunesBoundaryConditionsCalculator(testDataPath, validPreprocessorDirectory)).Return(calculator); mockRepository.ReplayAll(); - const string locationName = "some name"; - var duneLocation = new TestDuneLocation(locationName); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); + var duneLocation = new TestDuneLocation("some name"); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 0.5); @@ -367,7 +337,7 @@ string[] msgs = messages.ToArray(); Assert.AreEqual(7, msgs.Length); - Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{locationName}' is gestart.", msgs[0]); + Assert.AreEqual($"Hydraulische randvoorwaarden berekenen voor locatie '{duneLocation.Name}' is gestart.", msgs[0]); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[1]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); CalculationServiceTestHelper.AssertCalculationStartMessage(msgs[3]); @@ -390,7 +360,6 @@ public void Run_ErrorInCalculation_PerformValidationAndCalculationAndError(bool endInFailure, string lastErrorFileContent) { // Setup - var duneLocation = new TestDuneLocation(); var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); var calculator = new TestDunesBoundaryConditionsCalculator @@ -403,8 +372,7 @@ calculatorFactory.Expect(cf => cf.CreateDunesBoundaryConditionsCalculator(testDataPath, validPreprocessorDirectory)).Return(calculator); mockRepository.ReplayAll(); - var activity = new DuneErosionBoundaryCalculationActivity(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivity(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 0.5); @@ -430,15 +398,14 @@ { // Setup var duneLocation = new TestDuneLocation(); - var duneLocationCalculation = new DuneLocationCalculation(new TestDuneLocation()); + var duneLocationCalculation = new DuneLocationCalculation(duneLocation); var observer = mockRepository.StrictMock(); observer.Expect(o => o.UpdateObserver()); duneLocation.Attach(observer); mockRepository.ReplayAll(); - var activity = new DuneErosionBoundaryCalculationActivityWithState(duneLocation, - duneLocationCalculation, + var activity = new DuneErosionBoundaryCalculationActivityWithState(duneLocationCalculation, validFilePath, validPreprocessorDirectory, 1.0, @@ -453,14 +420,12 @@ private class DuneErosionBoundaryCalculationActivityWithState : DuneErosionBoundaryCalculationActivity { - public DuneErosionBoundaryCalculationActivityWithState(DuneLocation duneLocation, - DuneLocationCalculation duneLocationCalculation, + public DuneErosionBoundaryCalculationActivityWithState(DuneLocationCalculation duneLocationCalculation, string hydraulicBoundaryDatabaseFilePath, string preprocessorDirectory, double norm, ActivityState state) - : base(duneLocation, - duneLocationCalculation, + : base(duneLocationCalculation, hydraulicBoundaryDatabaseFilePath, preprocessorDirectory, norm)