Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Data/DuneErosionFailureMechanism.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rf86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2 --- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Data/DuneErosionFailureMechanism.cs (.../DuneErosionFailureMechanism.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Data/DuneErosionFailureMechanism.cs (.../DuneErosionFailureMechanism.cs) (revision f86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2) @@ -80,12 +80,10 @@ throw new ArgumentNullException(nameof(duneLocations)); } - duneLocationCollection.Clear(); duneLocationCollection.AddRange(duneLocations); DuneLocationCalculationsForUserDefinedTargetProbabilities.ForEach(dlc => { - dlc.DuneLocationCalculations.Clear(); dlc.DuneLocationCalculations.AddRange(duneLocations.Select(dl => new DuneLocationCalculation(dl))); }); } Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.IO/DuneLocationsReader.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rf86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2 --- Riskeer/DuneErosion/src/Riskeer.DuneErosion.IO/DuneLocationsReader.cs (.../DuneLocationsReader.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.IO/DuneLocationsReader.cs (.../DuneLocationsReader.cs) (revision f86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2) @@ -79,10 +79,10 @@ object nameValue = locationData.MetaData[nameKey]; string name = nameValue?.ToString() ?? string.Empty; - int coastalAreaId = Convert.ToInt32(locationData.MetaData[coastalAreaIdKey]); - double offset = Convert.ToDouble(locationData.MetaData[offsetKey]); - double orientation = Convert.ToDouble(locationData.MetaData[orientationKey]); - double d50 = Convert.ToDouble(locationData.MetaData[d50Key]); + var coastalAreaId = Convert.ToInt32(locationData.MetaData[coastalAreaIdKey]); + var offset = Convert.ToDouble(locationData.MetaData[offsetKey]); + var orientation = Convert.ToDouble(locationData.MetaData[orientationKey]); + var d50 = Convert.ToDouble(locationData.MetaData[d50Key]); yield return new ReadDuneLocation(name, location, coastalAreaId, offset, orientation, d50); } Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Service/DuneErosionDataSynchronizationService.cs =================================================================== diff -u -r8d228de63e1a2da77d94732b57ee72fb9a937537 -rf86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2 --- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Service/DuneErosionDataSynchronizationService.cs (.../DuneErosionDataSynchronizationService.cs) (revision 8d228de63e1a2da77d94732b57ee72fb9a937537) +++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Service/DuneErosionDataSynchronizationService.cs (.../DuneErosionDataSynchronizationService.cs) (revision f86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2) @@ -72,7 +72,6 @@ if (!hydraulicBoundaryLocations.Any() || !duneLocations.Any()) { - failureMechanism.SetDuneLocations(Enumerable.Empty()); return; } Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Data.Test/DuneErosionFailureMechanismTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rf86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2 --- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Data.Test/DuneErosionFailureMechanismTest.cs (.../DuneErosionFailureMechanismTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Data.Test/DuneErosionFailureMechanismTest.cs (.../DuneErosionFailureMechanismTest.cs) (revision f86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2) @@ -65,7 +65,7 @@ } [Test] - public void SetDuneLocations_Always_PreviousLocationsAndCalculationsCleared() + public void SetDuneLocations_MultipleDuneLocations_SetsExpectedLocationsAndCalculations() { // Setup var calculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); @@ -79,27 +79,32 @@ } }; - failureMechanism.SetDuneLocations(new DuneLocation[] + var duneLocation1 = new TestDuneLocation(); + var duneLocation2 = new TestDuneLocation(); + + TestDuneLocation[] duneLocations = { - new TestDuneLocation() - }); + duneLocation1, + duneLocation2 + }; - // Precondition - CollectionAssert.IsNotEmpty(failureMechanism.DuneLocations); - CollectionAssert.IsNotEmpty(calculationsForTargetProbability1.DuneLocationCalculations); - CollectionAssert.IsNotEmpty(calculationsForTargetProbability2.DuneLocationCalculations); - // Call - failureMechanism.SetDuneLocations(Enumerable.Empty()); + failureMechanism.SetDuneLocations(duneLocations); // Assert - CollectionAssert.IsEmpty(failureMechanism.DuneLocations); - CollectionAssert.IsEmpty(calculationsForTargetProbability1.DuneLocationCalculations); - CollectionAssert.IsEmpty(calculationsForTargetProbability2.DuneLocationCalculations); + CollectionAssert.AreEqual(duneLocations, failureMechanism.DuneLocations); + + Assert.AreEqual(2, calculationsForTargetProbability1.DuneLocationCalculations.Count); + Assert.AreSame(duneLocation1, calculationsForTargetProbability1.DuneLocationCalculations[0].DuneLocation); + Assert.AreSame(duneLocation2, calculationsForTargetProbability1.DuneLocationCalculations[1].DuneLocation); + + Assert.AreEqual(2, calculationsForTargetProbability2.DuneLocationCalculations.Count); + Assert.AreSame(duneLocation1, calculationsForTargetProbability2.DuneLocationCalculations[0].DuneLocation); + Assert.AreSame(duneLocation2, calculationsForTargetProbability2.DuneLocationCalculations[1].DuneLocation); } [Test] - public void SetDuneLocations_MultipleDuneLocations_SetsExpectedLocationsAndCalculations() + public void GivenFailureMechanismWithDuneLocationCalculations_WhenSetDuneLocations_ThenLocationsAndCalculationsAdded() { // Setup var calculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); @@ -113,28 +118,26 @@ } }; - var duneLocation1 = new TestDuneLocation(); - var duneLocation2 = new TestDuneLocation(); - - TestDuneLocation[] duneLocations = + failureMechanism.SetDuneLocations(new DuneLocation[] { - duneLocation1, - duneLocation2 - }; + new TestDuneLocation() + }); + // Precondition + Assert.AreEqual(1, failureMechanism.DuneLocations.Count()); + Assert.AreEqual(1, calculationsForTargetProbability1.DuneLocationCalculations.Count); + Assert.AreEqual(1, calculationsForTargetProbability2.DuneLocationCalculations.Count); + // Call - failureMechanism.SetDuneLocations(duneLocations); + failureMechanism.SetDuneLocations(new DuneLocation[] + { + new TestDuneLocation() + }); // Assert - CollectionAssert.AreEqual(duneLocations, failureMechanism.DuneLocations); - + Assert.AreEqual(2, failureMechanism.DuneLocations.Count()); Assert.AreEqual(2, calculationsForTargetProbability1.DuneLocationCalculations.Count); - Assert.AreSame(duneLocation1, calculationsForTargetProbability1.DuneLocationCalculations[0].DuneLocation); - Assert.AreSame(duneLocation2, calculationsForTargetProbability1.DuneLocationCalculations[1].DuneLocation); - Assert.AreEqual(2, calculationsForTargetProbability2.DuneLocationCalculations.Count); - Assert.AreSame(duneLocation1, calculationsForTargetProbability2.DuneLocationCalculations[0].DuneLocation); - Assert.AreSame(duneLocation2, calculationsForTargetProbability2.DuneLocationCalculations[1].DuneLocation); } } } \ No newline at end of file Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsReplacementHandlerTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rf86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2 --- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsReplacementHandlerTest.cs (.../DuneLocationsReplacementHandlerTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/Handlers/DuneLocationsReplacementHandlerTest.cs (.../DuneLocationsReplacementHandlerTest.cs) (revision f86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2) @@ -22,13 +22,11 @@ using System; using System.Linq; using Core.Common.Base; -using Core.Common.Base.Geometry; 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; @@ -106,7 +104,7 @@ } [Test] - public void Replace_FailureMechanismHasDuneLocations_LocationsAndCalculationsCleared() + public void Replace_NewLocationsIsDune_LocationAndCalculationsAdded() { // Setup var mocks = new MockRepository(); @@ -123,38 +121,35 @@ } }; - var duneLocations = new[] - { - new TestDuneLocation(), - new TestDuneLocation() - }; - failureMechanism.SetDuneLocations(duneLocations); - var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); // Precondition - Assert.AreEqual(2, failureMechanism.DuneLocations.Count()); + CollectionAssert.IsEmpty(failureMechanism.DuneLocations); ObservableList calculationsForTargetProbabilities = failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities; - Assert.AreEqual(2, calculationsForTargetProbabilities[0].DuneLocationCalculations.Count); - Assert.AreEqual(2, calculationsForTargetProbabilities[1].DuneLocationCalculations.Count); + CollectionAssert.IsEmpty(calculationsForTargetProbabilities[0].DuneLocationCalculations); + CollectionAssert.IsEmpty(calculationsForTargetProbabilities[1].DuneLocationCalculations); // Call - handler.Replace(new HydraulicBoundaryLocation[] + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test_1_100", 205354, 609735); + handler.Replace(new[] { - new TestHydraulicBoundaryLocation() + hydraulicBoundaryLocation }); // Assert - CollectionAssert.IsEmpty(failureMechanism.DuneLocations); - CollectionAssert.IsEmpty(calculationsForTargetProbabilities[0].DuneLocationCalculations); - CollectionAssert.IsEmpty(calculationsForTargetProbabilities[1].DuneLocationCalculations); + Assert.AreEqual(1, failureMechanism.DuneLocations.Count()); + + DuneLocation duneLocation = failureMechanism.DuneLocations.Single(); + Assert.AreSame(hydraulicBoundaryLocation, duneLocation.HydraulicBoundaryLocation); + AssertDuneLocationCalculations(duneLocation, failureMechanism); + mocks.VerifyAll(); } [Test] - public void Replace_NewLocationsIsDune_LocationAndCalculationsAdded() + public void Replace_FailureMechanismHasDuneLocations_LocationsAndCalculationsAdded() { // Setup var mocks = new MockRepository(); @@ -170,11 +165,13 @@ new DuneLocationCalculationsForTargetProbability(random.NextDouble(0, 0.01)) } }; - failureMechanism.SetDuneLocations(new[] + + var duneLocations = new[] { new TestDuneLocation(), new TestDuneLocation() - }); + }; + failureMechanism.SetDuneLocations(duneLocations); var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); @@ -193,12 +190,12 @@ }); // Assert - Assert.AreEqual(1, failureMechanism.DuneLocations.Count()); + Assert.AreEqual(3, failureMechanism.DuneLocations.Count()); - DuneLocation duneLocation = failureMechanism.DuneLocations.First(); - Assert.AreEqual(1, duneLocation.Id); - Assert.AreEqual(new Point2D(205354, 609735), duneLocation.Location); - AssertDuneLocationCalculations(duneLocation, failureMechanism); + foreach (DuneLocation duneLocation in failureMechanism.DuneLocations) + { + AssertDuneLocationCalculations(duneLocation, failureMechanism); + } mocks.VerifyAll(); } @@ -208,11 +205,6 @@ { // Setup var failureMechanism = new DuneErosionFailureMechanism(); - failureMechanism.SetDuneLocations(new[] - { - new TestDuneLocation(), - new TestDuneLocation() - }); var mocks = new MockRepository(); var viewCommands = mocks.StrictMock(); @@ -221,11 +213,6 @@ var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); - handler.Replace(new HydraulicBoundaryLocation[] - { - new TestHydraulicBoundaryLocation() - }); - // Precondition CollectionAssert.IsEmpty(failureMechanism.DuneLocations); @@ -245,13 +232,8 @@ mocks.ReplayAll(); var failureMechanism = new DuneErosionFailureMechanism(); - failureMechanism.SetDuneLocations(new[] - { - new TestDuneLocation(), - new TestDuneLocation() - }); - var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); + var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); handler.Replace(new[] { new HydraulicBoundaryLocation(1, "Locatie_1_100", 205354, 609735) @@ -271,16 +253,14 @@ { ObservableList userDefinedTargetProbabilities = failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities; - foreach (DuneLocationCalculationsForTargetProbability userDefinedTargetProbability in userDefinedTargetProbabilities) + + foreach (DuneLocationCalculation duneLocationCalculation in userDefinedTargetProbabilities.Select( + userDefinedTargetProbability => userDefinedTargetProbability.DuneLocationCalculations.SingleOrDefault( + c => c.DuneLocation == expectedDuneLocation))) { - AssertDefaultDuneLocationCalculation(expectedDuneLocation, userDefinedTargetProbability.DuneLocationCalculations.Single()); + Assert.IsNotNull(duneLocationCalculation); + Assert.IsNull(duneLocationCalculation.Output); } } - - private static void AssertDefaultDuneLocationCalculation(DuneLocation expectedDuneLocation, DuneLocationCalculation calculation) - { - Assert.AreSame(expectedDuneLocation, calculation.DuneLocation); - Assert.IsNull(calculation.Output); - } } } \ No newline at end of file Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rf86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2 --- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs (.../DuneErosionDataSynchronizationServiceTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs (.../DuneErosionDataSynchronizationServiceTest.cs) (revision f86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2) @@ -96,34 +96,6 @@ } [Test] - public void SetDuneLocations_Always_PreviousDuneLocationsCleared() - { - // Setup - var duneLocation = new TestDuneLocation(); - - var failureMechanism = new DuneErosionFailureMechanism(); - failureMechanism.SetDuneLocations(new[] - { - duneLocation - }); - - // Precondition - CollectionAssert.AreEqual( - new[] - { - duneLocation - }, failureMechanism.DuneLocations); - - // Call - DuneErosionDataSynchronizationService.SetDuneLocations(failureMechanism, - new HydraulicBoundaryLocation[0], - new ReadDuneLocation[0]); - - // Assert - CollectionAssert.IsEmpty(failureMechanism.DuneLocations); - } - - [Test] public void SetDuneLocations_DuneLocationOffsetMatchesWithHydraulicBoundaryLocationName_DuneLocationAddedToFailureMechanism() { // Setup @@ -194,8 +166,8 @@ [Test] [TestCaseSource(nameof(Locations))] - public void SetDuneLocation_DuneLocationNoMatchWithHydraulicBoundaryLocation_DuneLocationNotAddedToFailureMechanism(ReadDuneLocation readDuneLocation, - HydraulicBoundaryLocation hydraulicBoundaryLocation) + public void SetDuneLocation_DuneLocationNoMatchWithHydraulicBoundaryLocation_DuneLocationNotAddedToFailureMechanism( + ReadDuneLocation readDuneLocation, HydraulicBoundaryLocation hydraulicBoundaryLocation) { // Setup var failureMechanism = new DuneErosionFailureMechanism(); Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDataUpdateHandlerTest.cs =================================================================== diff -u -re2f3bba701c9ceb1035c353dfdcfe76d89ae673a -rf86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2 --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDataUpdateHandlerTest.cs (.../HydraulicBoundaryDataUpdateHandlerTest.cs) (revision e2f3bba701c9ceb1035c353dfdcfe76d89ae673a) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicBoundaryDataUpdateHandlerTest.cs (.../HydraulicBoundaryDataUpdateHandlerTest.cs) (revision f86a0fa3e10e4c856ed487aa00c5fe3b22f1bbd2) @@ -23,7 +23,6 @@ using System.Collections.Generic; using System.Linq; using Core.Common.Base; -using Core.Common.TestUtil; using NUnit.Extensions.Forms; using NUnit.Framework; using Rhino.Mocks;