Fisheye: Tag a5d370e78f930b50c3fdedfec51e538ccbdd6cb6 refers to a dead (removed) revision in file `Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/DuneLocationsRemoveHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a5d370e78f930b50c3fdedfec51e538ccbdd6cb6 refers to a dead (removed) revision in file `Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/DuneLocationsReplacementHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/DuneLocationsUpdateHandler.cs =================================================================== diff -u --- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/DuneLocationsUpdateHandler.cs (revision 0) +++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/DuneLocationsUpdateHandler.cs (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -0,0 +1,96 @@ +// Copyright (C) Stichting Deltares 2022. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using Core.Gui.Commands; +using Riskeer.Common.Data.Hydraulics; +using Riskeer.DuneErosion.Data; +using Riskeer.DuneErosion.IO; +using Riskeer.DuneErosion.Service; + +namespace Riskeer.DuneErosion.Plugin.Handlers +{ + /// + /// Class responsible for updating dune locations of a . + /// + public class DuneLocationsUpdateHandler : IDuneLocationsUpdateHandler + { + private readonly IViewCommands viewCommands; + private readonly DuneErosionFailureMechanism failureMechanism; + private readonly DuneLocationsReader duneLocationsReader; + + /// + /// Creates a new instance of . + /// + /// The view commands used to close views for removed data. + /// The failure mechanism to update. + /// Thrown when any parameter is null. + public DuneLocationsUpdateHandler(IViewCommands viewCommands, DuneErosionFailureMechanism failureMechanism) + { + if (viewCommands == null) + { + throw new ArgumentNullException(nameof(viewCommands)); + } + + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + this.viewCommands = viewCommands; + this.failureMechanism = failureMechanism; + + duneLocationsReader = new DuneLocationsReader(); + } + + public void AddLocations(IEnumerable newHydraulicBoundaryLocations) + { + IEnumerable newDuneLocations = duneLocationsReader.ReadDuneLocations(); + + DuneErosionDataSynchronizationService.SetDuneLocations(failureMechanism, + newHydraulicBoundaryLocations, + newDuneLocations); + } + + public void RemoveLocations(IEnumerable hydraulicBoundaryLocations) + { + if (hydraulicBoundaryLocations == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryLocations)); + } + + DuneLocation[] locationsToRemove = failureMechanism.DuneLocations.Where( + dl => hydraulicBoundaryLocations.Contains(dl.HydraulicBoundaryLocation)).ToArray(); + + failureMechanism.RemoveDuneLocations(locationsToRemove); + } + + public void DoPostUpdateActions() + { + if (!failureMechanism.DuneLocations.Any()) + { + viewCommands.RemoveAllViewsForItem(failureMechanism); + } + } + } +} \ No newline at end of file Fisheye: Tag a5d370e78f930b50c3fdedfec51e538ccbdd6cb6 refers to a dead (removed) revision in file `Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/IDuneLocationsRemoveHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a5d370e78f930b50c3fdedfec51e538ccbdd6cb6 refers to a dead (removed) revision in file `Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/IDuneLocationsReplacementHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/IDuneLocationsUpdateHandler.cs =================================================================== diff -u --- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/IDuneLocationsUpdateHandler.cs (revision 0) +++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/Handlers/IDuneLocationsUpdateHandler.cs (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -0,0 +1,55 @@ +// Copyright (C) Stichting Deltares 2022. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Riskeer.Common.Data.Hydraulics; +using Riskeer.DuneErosion.Data; + +namespace Riskeer.DuneErosion.Plugin.Handlers +{ + /// + /// Interface for updating dune locations of a . + /// + public interface IDuneLocationsUpdateHandler + { + /// + /// Adds dune locations to the . + /// + /// The hydraulic boundary locations to add the dune locations for. + /// Thrown when + /// is null. + void AddLocations(IEnumerable newHydraulicBoundaryLocations); + + /// + /// Removes dune locations from the . + /// + /// The hydraulic boundary locations to remove the dune locations for. + /// Thrown when + /// is null. + void RemoveLocations(IEnumerable hydraulicBoundaryLocations); + + /// + /// Performs post-update actions. + /// + void DoPostUpdateActions(); + } +} \ No newline at end of file Fisheye: Tag a5d370e78f930b50c3fdedfec51e538ccbdd6cb6 refers to a dead (removed) revision in file `Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsRemoveHandlerTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a5d370e78f930b50c3fdedfec51e538ccbdd6cb6 refers to a dead (removed) revision in file `Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsReplacementHandlerTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsUpdateHandlerTest.cs =================================================================== diff -u --- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsUpdateHandlerTest.cs (revision 0) +++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsUpdateHandlerTest.cs (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -0,0 +1,328 @@ +// Copyright (C) Stichting Deltares 2022. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using Core.Common.Base; +using Core.Common.TestUtil; +using Core.Gui.Commands; +using NUnit.Framework; +using Rhino.Mocks; +using Riskeer.Common.Data.Hydraulics; +using Riskeer.Common.Data.TestUtil; +using Riskeer.DuneErosion.Data; +using Riskeer.DuneErosion.Data.TestUtil; +using Riskeer.DuneErosion.Plugin.Handlers; + +namespace Riskeer.DuneErosion.Plugin.Test.Handlers +{ + [TestFixture] + public class DuneLocationsUpdateHandlerTest + { + [Test] + public void Constructor_ViewCommandsNull_ThrowArgumentNullException() + { + // Setup + var failureMechanism = new DuneErosionFailureMechanism(); + + // Call + void Call() => new DuneLocationsUpdateHandler(null, failureMechanism); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("viewCommands", exception.ParamName); + } + + [Test] + public void Constructor_FailureMechanismNull_ThrowArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var viewCommands = mocks.Stub(); + mocks.ReplayAll(); + + // Call + void Call() => new DuneLocationsUpdateHandler(viewCommands, null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("failureMechanism", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void Constructor_ExpectedValues() + { + // Setup + var mocks = new MockRepository(); + var viewCommands = mocks.Stub(); + mocks.ReplayAll(); + + // Call + var handler = new DuneLocationsUpdateHandler(viewCommands, new DuneErosionFailureMechanism()); + + // Assert + Assert.IsInstanceOf(handler); + mocks.VerifyAll(); + } + + [Test] + public void AddLocations_HydraulicBoundaryLocationsNull_ThrowArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var viewCommands = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new DuneErosionFailureMechanism(); + var handler = new DuneLocationsUpdateHandler(viewCommands, failureMechanism); + + // Call + void Call() => handler.AddLocations(null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("hydraulicBoundaryLocations", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void AddLocations_NewLocationsIsDune_LocationAndCalculationsAdded() + { + // Setup + var mocks = new MockRepository(); + var viewCommands = mocks.Stub(); + mocks.ReplayAll(); + + var random = new Random(21); + var failureMechanism = new DuneErosionFailureMechanism + { + DuneLocationCalculationsForUserDefinedTargetProbabilities = + { + new DuneLocationCalculationsForTargetProbability(random.NextDouble(0, 0.01)), + new DuneLocationCalculationsForTargetProbability(random.NextDouble(0, 0.01)) + } + }; + + var handler = new DuneLocationsUpdateHandler(viewCommands, failureMechanism); + + // Precondition + CollectionAssert.IsEmpty(failureMechanism.DuneLocations); + + ObservableList calculationsForTargetProbabilities = + failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities; + CollectionAssert.IsEmpty(calculationsForTargetProbabilities[0].DuneLocationCalculations); + CollectionAssert.IsEmpty(calculationsForTargetProbabilities[1].DuneLocationCalculations); + + // Call + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test_1_100", 205354, 609735); + handler.AddLocations(new[] + { + hydraulicBoundaryLocation + }); + + // Assert + Assert.AreEqual(1, failureMechanism.DuneLocations.Count()); + + DuneLocation duneLocation = failureMechanism.DuneLocations.Single(); + Assert.AreSame(hydraulicBoundaryLocation, duneLocation.HydraulicBoundaryLocation); + AssertDuneLocationCalculations(duneLocation, failureMechanism); + + mocks.VerifyAll(); + } + + [Test] + public void AddLocations_FailureMechanismHasDuneLocations_LocationsAndCalculationsAdded() + { + // Setup + var mocks = new MockRepository(); + var viewCommands = mocks.Stub(); + mocks.ReplayAll(); + + var random = new Random(21); + var failureMechanism = new DuneErosionFailureMechanism + { + DuneLocationCalculationsForUserDefinedTargetProbabilities = + { + new DuneLocationCalculationsForTargetProbability(random.NextDouble(0, 0.01)), + new DuneLocationCalculationsForTargetProbability(random.NextDouble(0, 0.01)) + } + }; + + var duneLocations = new[] + { + new TestDuneLocation(), + new TestDuneLocation() + }; + failureMechanism.SetDuneLocations(duneLocations); + + var handler = new DuneLocationsUpdateHandler(viewCommands, failureMechanism); + + // Precondition + Assert.AreEqual(2, failureMechanism.DuneLocations.Count()); + + ObservableList calculationsForTargetProbabilities = + failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities; + Assert.AreEqual(2, calculationsForTargetProbabilities[0].DuneLocationCalculations.Count); + Assert.AreEqual(2, calculationsForTargetProbabilities[1].DuneLocationCalculations.Count); + + // Call + handler.AddLocations(new[] + { + new HydraulicBoundaryLocation(1, "test_1_100", 205354, 609735) + }); + + // Assert + Assert.AreEqual(3, failureMechanism.DuneLocations.Count()); + + foreach (DuneLocation duneLocation in failureMechanism.DuneLocations) + { + AssertDuneLocationCalculations(duneLocation, failureMechanism); + } + + mocks.VerifyAll(); + } + + [Test] + public void RemoveLocations_HydraulicBoundaryLocationsNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var viewCommands = mocks.Stub(); + mocks.ReplayAll(); + + var handler = new DuneLocationsUpdateHandler(viewCommands, new DuneErosionFailureMechanism()); + + // Call + void Call() => handler.RemoveLocations(null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("hydraulicBoundaryLocations", exception.ParamName); + } + + [Test] + public void GivenFailureMechanismWithLocationsAndCalculations_WhenRemoveLocations_ThenExpectedLocationsRemoved() + { + // Given + var mocks = new MockRepository(); + var viewCommands = mocks.Stub(); + mocks.ReplayAll(); + + var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); + + var failureMechanism = new DuneErosionFailureMechanism + { + DuneLocationCalculationsForUserDefinedTargetProbabilities = + { + new DuneLocationCalculationsForTargetProbability(0.1) + } + }; + + failureMechanism.SetDuneLocations(new[] + { + new DuneLocation(string.Empty, hydraulicBoundaryLocation, new DuneLocation.ConstructionProperties()) + }); + + DuneLocationCalculationsForTargetProbability duneLocationCalculationsForTargetProbability = + failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.First(); + + // Precondition + Assert.AreEqual(1, failureMechanism.DuneLocations.Count()); + Assert.AreEqual(1, duneLocationCalculationsForTargetProbability.DuneLocationCalculations.Count); + + // When + var handler = new DuneLocationsUpdateHandler(viewCommands, failureMechanism); + handler.RemoveLocations(new[] + { + hydraulicBoundaryLocation + }); + + // Then + CollectionAssert.IsEmpty(failureMechanism.DuneLocations); + CollectionAssert.IsEmpty(duneLocationCalculationsForTargetProbability.DuneLocationCalculations); + mocks.VerifyAll(); + } + + [Test] + public void DoPostUpdateActions_FailureMechanismHasNoDuneLocations_CloseAllViewsForFailureMechanism() + { + // Setup + var failureMechanism = new DuneErosionFailureMechanism(); + + var mocks = new MockRepository(); + var viewCommands = mocks.StrictMock(); + viewCommands.Expect(vc => vc.RemoveAllViewsForItem(failureMechanism)); + mocks.ReplayAll(); + + var handler = new DuneLocationsUpdateHandler(viewCommands, failureMechanism); + + // Precondition + CollectionAssert.IsEmpty(failureMechanism.DuneLocations); + + // Call + handler.DoPostUpdateActions(); + + // Assert + mocks.VerifyAll(); + } + + [Test] + public void DoPostUpdateActions_FailureMechanismHasNoDuneLocations_DoNothing() + { + // Setup + var mocks = new MockRepository(); + var viewCommands = mocks.StrictMock(); + mocks.ReplayAll(); + + var failureMechanism = new DuneErosionFailureMechanism(); + + var handler = new DuneLocationsUpdateHandler(viewCommands, failureMechanism); + handler.AddLocations(new[] + { + new HydraulicBoundaryLocation(1, "Locatie_1_100", 205354, 609735) + }); + + // Precondition + Assert.AreEqual(1, failureMechanism.DuneLocations.Count()); + + // Call + handler.DoPostUpdateActions(); + + // Assert + mocks.VerifyAll(); // Expect no calls in 'viewCommands' + } + + private static void AssertDuneLocationCalculations(DuneLocation expectedDuneLocation, DuneErosionFailureMechanism failureMechanism) + { + ObservableList userDefinedTargetProbabilities = + failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities; + + foreach (DuneLocationCalculation duneLocationCalculation in userDefinedTargetProbabilities.Select( + userDefinedTargetProbability => userDefinedTargetProbability.DuneLocationCalculations.SingleOrDefault( + c => c.DuneLocation == expectedDuneLocation))) + { + Assert.IsNotNull(duneLocationCalculation); + Assert.IsNull(duneLocationCalculation.Output); + } + } + } +} \ No newline at end of file Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDataUpdateHandler.cs =================================================================== diff -u -rc0a777e2e95b1dfaff172db07371451eecee09de -ra5d370e78f930b50c3fdedfec51e538ccbdd6cb6 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDataUpdateHandler.cs (.../HydraulicBoundaryDataUpdateHandler.cs) (revision c0a777e2e95b1dfaff172db07371451eecee09de) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDataUpdateHandler.cs (.../HydraulicBoundaryDataUpdateHandler.cs) (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -38,29 +38,29 @@ public class HydraulicBoundaryDataUpdateHandler : IHydraulicBoundaryDataUpdateHandler { private readonly AssessmentSection assessmentSection; - private readonly IDuneLocationsReplacementHandler duneLocationsReplacementHandler; + private readonly IDuneLocationsUpdateHandler duneLocationsUpdateHandler; /// /// Creates a new instance of . /// /// The assessment section to update for. - /// The handler to replace dune locations. + /// The handler for adding dune locations. /// Thrown when any parameter is null. public HydraulicBoundaryDataUpdateHandler(AssessmentSection assessmentSection, - IDuneLocationsReplacementHandler duneLocationsReplacementHandler) + IDuneLocationsUpdateHandler duneLocationsUpdateHandler) { if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } - if (duneLocationsReplacementHandler == null) + if (duneLocationsUpdateHandler == null) { - throw new ArgumentNullException(nameof(duneLocationsReplacementHandler)); + throw new ArgumentNullException(nameof(duneLocationsUpdateHandler)); } this.assessmentSection = assessmentSection; - this.duneLocationsReplacementHandler = duneLocationsReplacementHandler; + this.duneLocationsUpdateHandler = duneLocationsUpdateHandler; } public IEnumerable Update(HydraulicBoundaryData hydraulicBoundaryData, ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase, @@ -115,14 +115,14 @@ hydraulicBoundaryData.Locations.AddRange(newHydraulicBoundaryLocations); assessmentSection.SetHydraulicBoundaryLocationCalculations(newHydraulicBoundaryDatabase.Locations); - duneLocationsReplacementHandler.Replace(newHydraulicBoundaryDatabase.Locations); + duneLocationsUpdateHandler.AddLocations(newHydraulicBoundaryDatabase.Locations); return GetLocationsAndCalculationsObservables(hydraulicBoundaryData); } public void DoPostUpdateActions() { - duneLocationsReplacementHandler.DoPostReplacementUpdates(); + duneLocationsUpdateHandler.DoPostUpdateActions(); } private IEnumerable GetLocationsAndCalculationsObservables(HydraulicBoundaryData hydraulicBoundaryData) Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDatabaseRemoveHandler.cs =================================================================== diff -u -rfc1b95fa95bde9902e4c19c7eb1cb0d3900e6fae -ra5d370e78f930b50c3fdedfec51e538ccbdd6cb6 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDatabaseRemoveHandler.cs (.../HydraulicBoundaryDatabaseRemoveHandler.cs) (revision fc1b95fa95bde9902e4c19c7eb1cb0d3900e6fae) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDatabaseRemoveHandler.cs (.../HydraulicBoundaryDatabaseRemoveHandler.cs) (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -36,29 +36,29 @@ public class HydraulicBoundaryDatabaseRemoveHandler { private readonly AssessmentSection assessmentSection; - private readonly IDuneLocationsReplacementHandler duneLocationsReplacementHandler; + private readonly IDuneLocationsUpdateHandler duneLocationsUpdateHandler; /// /// Creates a new instance of . /// /// The assessment section to update. - /// The handler to remove dune locations. + /// The handler to update dune locations. /// Thrown when any parameter is null. public HydraulicBoundaryDatabaseRemoveHandler(AssessmentSection assessmentSection, - IDuneLocationsReplacementHandler duneLocationsReplacementHandler) + IDuneLocationsUpdateHandler duneLocationsUpdateHandler) { if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } - if (duneLocationsReplacementHandler == null) + if (duneLocationsUpdateHandler == null) { - throw new ArgumentNullException(nameof(duneLocationsReplacementHandler)); + throw new ArgumentNullException(nameof(duneLocationsUpdateHandler)); } this.assessmentSection = assessmentSection; - this.duneLocationsReplacementHandler = duneLocationsReplacementHandler; + this.duneLocationsUpdateHandler = duneLocationsUpdateHandler; } /// @@ -76,7 +76,7 @@ } assessmentSection.RemoveHydraulicBoundaryLocationCalculations(hydraulicBoundaryDatabase.Locations); - duneLocationsReplacementHandler.RemoveLocations(hydraulicBoundaryDatabase.Locations); + duneLocationsUpdateHandler.RemoveLocations(hydraulicBoundaryDatabase.Locations); assessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases.Remove(hydraulicBoundaryDatabase); var changedObjects = new List(); @@ -90,7 +90,7 @@ /// public void DoPostRemoveActions() { - duneLocationsReplacementHandler.DoPostReplacementUpdates(); + duneLocationsUpdateHandler.DoPostUpdateActions(); } private IEnumerable GetLocationsAndCalculationsObservables(HydraulicBoundaryData hydraulicBoundaryData) Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs =================================================================== diff -u -rfc1b95fa95bde9902e4c19c7eb1cb0d3900e6fae -ra5d370e78f930b50c3fdedfec51e538ccbdd6cb6 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs (.../RiskeerPlugin.cs) (revision fc1b95fa95bde9902e4c19c7eb1cb0d3900e6fae) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs (.../RiskeerPlugin.cs) (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -598,7 +598,7 @@ Resources.HydraulicBoundaryDatabase_file_filter_Description), CreateFileImporter = (context, filePath) => new HydraulicBoundaryDatabaseImporter( context.WrappedData, new HydraulicBoundaryDataUpdateHandler(context.AssessmentSection, - new DuneLocationsReplacementHandler( + new DuneLocationsUpdateHandler( Gui.ViewCommands, context.AssessmentSection.DuneErosion)), filePath) }; @@ -2535,7 +2535,7 @@ private void HydraulicBoundaryDatabaseContextOnNodeRemoved(HydraulicBoundaryDatabaseContext nodeData, object parentNodeData) { var handler = new HydraulicBoundaryDatabaseRemoveHandler( - nodeData.AssessmentSection, new DuneLocationsReplacementHandler(Gui.ViewCommands, nodeData.AssessmentSection.DuneErosion)); + nodeData.AssessmentSection, new DuneLocationsUpdateHandler(Gui.ViewCommands, nodeData.AssessmentSection.DuneErosion)); IEnumerable changedObjects = handler.RemoveHydraulicBoundaryDatabase(nodeData.WrappedData); handler.DoPostRemoveActions(); Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDataUpdateHandlerTest.cs =================================================================== diff -u -rc0a777e2e95b1dfaff172db07371451eecee09de -ra5d370e78f930b50c3fdedfec51e538ccbdd6cb6 --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDataUpdateHandlerTest.cs (.../HydraulicBoundaryDataUpdateHandlerTest.cs) (revision c0a777e2e95b1dfaff172db07371451eecee09de) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDataUpdateHandlerTest.cs (.../HydraulicBoundaryDataUpdateHandlerTest.cs) (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -47,11 +47,11 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); // Call - void Call() => new HydraulicBoundaryDataUpdateHandler(null, duneLocationsReplacementHandler); + void Call() => new HydraulicBoundaryDataUpdateHandler(null, duneLocationsUpdateHandler); // Assert var exception = Assert.Throws(Call); @@ -60,26 +60,26 @@ } [Test] - public void Constructor_DuneLocationsReplacementHandlerNull_ThrowsArgumentNullException() + public void Constructor_DuneLocationsUpdateHandlerNull_ThrowsArgumentNullException() { // Call void Call() => new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), null); // Assert var exception = Assert.Throws(Call); - Assert.AreEqual("duneLocationsReplacementHandler", exception.ParamName); + Assert.AreEqual("duneLocationsUpdateHandler", exception.ParamName); } [Test] public void Constructor_ExpectedValues() { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); // Call - var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsUpdateHandler); // Assert Assert.IsInstanceOf(handler); @@ -91,12 +91,12 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabaseTestFactory.Create(); - var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsUpdateHandler); // Call void Call() @@ -117,10 +117,10 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); - var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsUpdateHandler); // Call void Call() => handler.Update(new HydraulicBoundaryData(), null, @@ -138,10 +138,10 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); - var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsUpdateHandler); // Call void Call() => handler.Update(new HydraulicBoundaryData(), ReadHydraulicBoundaryDatabaseTestFactory.Create(), @@ -158,12 +158,12 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabaseTestFactory.Create(); - var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsUpdateHandler); // Call void Call() @@ -183,12 +183,12 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabaseTestFactory.Create(); - var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(CreateAssessmentSection(), duneLocationsUpdateHandler); // Call void Call() @@ -210,8 +210,8 @@ var hydraulicBoundaryData = new HydraulicBoundaryData(); var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.StrictMock(); - duneLocationsReplacementHandler.Expect(h => h.Replace(Arg>.Is.NotNull)) + var duneLocationsUpdateHandler = mocks.StrictMock(); + duneLocationsUpdateHandler.Expect(h => h.AddLocations(Arg>.Is.NotNull)) .WhenCalled(invocation => { Assert.AreSame(hydraulicBoundaryData.HydraulicBoundaryDatabases.First().Locations, invocation.Arguments[0]); @@ -220,7 +220,7 @@ const string hrdFilePath = "some/file/path"; AssessmentSection assessmentSection = CreateAssessmentSection(); - var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsUpdateHandler); ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabaseTestFactory.Create(); ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase = @@ -255,12 +255,12 @@ var hydraulicBoundaryData = new HydraulicBoundaryData(); var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); const string hrdFilePath = "some/file/path"; AssessmentSection assessmentSection = CreateAssessmentSection(); - var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsUpdateHandler); var readHydraulicBoundaryLocationsToInclude = new[] { @@ -296,12 +296,12 @@ var hydraulicBoundaryData = new HydraulicBoundaryData(); var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); const string hrdFilePath = "some/file/path"; AssessmentSection assessmentSection = CreateAssessmentSection(); - var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsUpdateHandler); var readHydraulicBoundaryLocationsToExclude = new[] { @@ -341,7 +341,7 @@ { // Given var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); const string hrdFilePath = "some/file/path"; @@ -361,7 +361,7 @@ ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabaseTestFactory.Create(); - var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsUpdateHandler); // Precondition Assert.AreEqual(isLinked, hydraulicBoundaryData.IsLinked()); @@ -398,9 +398,9 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.StrictMock(); - duneLocationsReplacementHandler.Stub(h => h.Replace(null)).IgnoreArguments(); - duneLocationsReplacementHandler.Expect(h => h.DoPostReplacementUpdates()); + var duneLocationsUpdateHandler = mocks.StrictMock(); + duneLocationsUpdateHandler.Stub(h => h.AddLocations(null)).IgnoreArguments(); + duneLocationsUpdateHandler.Expect(h => h.DoPostUpdateActions()); mocks.ReplayAll(); const string hrdFilePath = "old/file/path"; @@ -419,7 +419,7 @@ ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabaseTestFactory.Create(); - var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDataUpdateHandler(assessmentSection, duneLocationsUpdateHandler); IEnumerable changedObjects = handler.Update(hydraulicBoundaryData, readHydraulicBoundaryDatabase, ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(readHydraulicBoundaryDatabase.TrackId), Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDatabaseRemoveHandlerTest.cs =================================================================== diff -u -rfc1b95fa95bde9902e4c19c7eb1cb0d3900e6fae -ra5d370e78f930b50c3fdedfec51e538ccbdd6cb6 --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDatabaseRemoveHandlerTest.cs (.../HydraulicBoundaryDatabaseRemoveHandlerTest.cs) (revision fc1b95fa95bde9902e4c19c7eb1cb0d3900e6fae) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDatabaseRemoveHandlerTest.cs (.../HydraulicBoundaryDatabaseRemoveHandlerTest.cs) (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -49,11 +49,11 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); // Call - void Call() => new HydraulicBoundaryDatabaseRemoveHandler(null, duneLocationsReplacementHandler); + void Call() => new HydraulicBoundaryDatabaseRemoveHandler(null, duneLocationsUpdateHandler); // Assert var exception = Assert.Throws(Call); @@ -62,7 +62,7 @@ } [Test] - public void Constructor_DuneLocationsReplacementHandlerNull_ThrowsArgumentNullException() + public void Constructor_DuneLocationsUpdateHandlerNull_ThrowsArgumentNullException() { // Setup var random = new Random(21); @@ -73,21 +73,21 @@ // Assert var exception = Assert.Throws(Call); - Assert.AreEqual("duneLocationsReplacementHandler", exception.ParamName); + Assert.AreEqual("duneLocationsUpdateHandler", exception.ParamName); } [Test] public void RemoveHydraulicBoundaryDatabase_HydraulicBoundaryDatabaseNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); var random = new Random(21); var assessmentSection = new AssessmentSection(random.NextEnumValue()); - var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsUpdateHandler); // Call void Call() => handler.RemoveHydraulicBoundaryDatabase(null); @@ -106,8 +106,8 @@ var location2 = new TestHydraulicBoundaryLocation(); var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); - duneLocationsReplacementHandler.Expect(dlrh => dlrh.RemoveLocations(new[] + var duneLocationsUpdateHandler = mocks.Stub(); + duneLocationsUpdateHandler.Expect(dlrh => dlrh.RemoveLocations(new[] { location1, location2 @@ -139,7 +139,7 @@ location2 }); - var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsUpdateHandler); // Precondition Assert.AreEqual(1, assessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases.Count); @@ -182,7 +182,7 @@ { // Given var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); @@ -197,7 +197,7 @@ } }; - var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsUpdateHandler); // When IEnumerable changedObjects = handler.RemoveHydraulicBoundaryDatabase(hydraulicBoundaryDatabase); @@ -230,7 +230,7 @@ { // Given var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.Stub(); + var duneLocationsUpdateHandler = mocks.Stub(); mocks.ReplayAll(); AssessmentSection assessmentSection = TestDataGenerator.GetAssessmentSectionWithAllCalculationConfigurations(); @@ -248,7 +248,7 @@ .Except(calculationsWithOutput.OfType()) .ToArray(); - var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsUpdateHandler); // When IEnumerable changedObjects = handler.RemoveHydraulicBoundaryDatabase(assessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases.First()); @@ -264,14 +264,14 @@ { // Setup var mocks = new MockRepository(); - var duneLocationsReplacementHandler = mocks.StrictMock(); - duneLocationsReplacementHandler.Expect(dlrh => dlrh.DoPostReplacementUpdates()); + var duneLocationsUpdateHandler = mocks.StrictMock(); + duneLocationsUpdateHandler.Expect(dlrh => dlrh.DoPostUpdateActions()); mocks.ReplayAll(); var random = new Random(21); var assessmentSection = new AssessmentSection(random.NextEnumValue()); - var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsReplacementHandler); + var handler = new HydraulicBoundaryDatabaseRemoveHandler(assessmentSection, duneLocationsUpdateHandler); // Call handler.DoPostRemoveActions(); Index: Riskeer/Integration/test/Riskeer.Integration.TestUtil/DataImportHelper.cs =================================================================== diff -u -ra2d3763ec2ffd65cbb769e20b421be28c74bb254 -ra5d370e78f930b50c3fdedfec51e538ccbdd6cb6 --- Riskeer/Integration/test/Riskeer.Integration.TestUtil/DataImportHelper.cs (.../DataImportHelper.cs) (revision a2d3763ec2ffd65cbb769e20b421be28c74bb254) +++ Riskeer/Integration/test/Riskeer.Integration.TestUtil/DataImportHelper.cs (.../DataImportHelper.cs) (revision a5d370e78f930b50c3fdedfec51e538ccbdd6cb6) @@ -205,7 +205,7 @@ assessmentSection.HydraulicBoundaryData, new HydraulicBoundaryDataUpdateHandler( assessmentSection, - new DuneLocationsReplacementHandler(viewCommands, assessmentSection.DuneErosion)), + new DuneLocationsUpdateHandler(viewCommands, assessmentSection.DuneErosion)), hrdFilePath); hydraulicBoundaryDatabaseImporter.Import();