Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionDataSynchronizationService.cs =================================================================== diff -u -rc60e4a04488fbe3a60d9c2c67c8a687093100775 -r52eba23e512aa44f6d93c0041f22bf5934a8df12 --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionDataSynchronizationService.cs (.../DuneErosionDataSynchronizationService.cs) (revision c60e4a04488fbe3a60d9c2c67c8a687093100775) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionDataSynchronizationService.cs (.../DuneErosionDataSynchronizationService.cs) (revision 52eba23e512aa44f6d93c0041f22bf5934a8df12) @@ -27,6 +27,7 @@ using Ringtoets.Common.Data.Hydraulics; using Ringtoets.DuneErosion.Data; using Ringtoets.DuneErosion.IO; +using DuneErosionDataResources = Ringtoets.DuneErosion.Data.Properties.Resources; namespace Ringtoets.DuneErosion.Service { @@ -69,9 +70,14 @@ foreach (ReadDuneLocation duneLocation in duneLocations) { + string duneLocationOffset = duneLocation.Offset.ToString(DuneErosionDataResources.DuneLocation_Offset_format, null); + foreach (var hydraulicBoundaryLocation in hydraulicBoundaryLocations) { - if (Math2D.AreEqualPoints(hydraulicBoundaryLocation.Location, duneLocation.Location)) + string offsetFromLocationName = hydraulicBoundaryLocation.Name.Split('_').Last(); + + if (Math2D.AreEqualPoints(hydraulicBoundaryLocation.Location, duneLocation.Location) + && offsetFromLocationName == duneLocationOffset) { failureMechanism.DuneLocations.Add(new DuneLocation(hydraulicBoundaryLocation.Id, duneLocation.Name, Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/Handlers/DuneLocationsReplacementHandlerTest.cs =================================================================== diff -u -r6d396d09e30a4f6921708359de82545798983ae7 -r52eba23e512aa44f6d93c0041f22bf5934a8df12 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/Handlers/DuneLocationsReplacementHandlerTest.cs (.../DuneLocationsReplacementHandlerTest.cs) (revision 6d396d09e30a4f6921708359de82545798983ae7) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/Handlers/DuneLocationsReplacementHandlerTest.cs (.../DuneLocationsReplacementHandlerTest.cs) (revision 52eba23e512aa44f6d93c0041f22bf5934a8df12) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Linq; using Core.Common.Base.Geometry; using Core.Common.Gui.Commands; using NUnit.Framework; @@ -76,7 +77,7 @@ var failureMechanism = new DuneErosionFailureMechanism(); var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); - + // Call TestDelegate test = () => handler.Replace(null); @@ -109,9 +110,9 @@ // Call handler.Replace(new HydraulicBoundaryLocation[] - { - new TestHydraulicBoundaryLocation() - }); + { + new TestHydraulicBoundaryLocation() + }); // Assert CollectionAssert.IsEmpty(failureMechanism.DuneLocations); @@ -140,19 +141,17 @@ Assert.AreEqual(2, failureMechanism.DuneLocations.Count); // Call - handler.Replace(new [] - { - new HydraulicBoundaryLocation(1, "test", 205354, 609735) - }); + handler.Replace(new[] + { + new HydraulicBoundaryLocation(1, "test_100", 205354, 609735) + }); // Assert - Assert.AreEqual(7, failureMechanism.DuneLocations.Count); + Assert.AreEqual(1, failureMechanism.DuneLocations.Count); + DuneLocation duneLocation = failureMechanism.DuneLocations.First(); - foreach (DuneLocation duneLocation in failureMechanism.DuneLocations) - { - Assert.AreEqual(1, duneLocation.Id); - Assert.AreEqual(new Point2D(205354, 609735), duneLocation.Location); - } + Assert.AreEqual(1, duneLocation.Id); + Assert.AreEqual(new Point2D(205354, 609735), duneLocation.Location); mocks.VerifyAll(); } @@ -178,9 +177,9 @@ var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); handler.Replace(new HydraulicBoundaryLocation[] - { - new TestHydraulicBoundaryLocation() - }); + { + new TestHydraulicBoundaryLocation() + }); // Precondition CollectionAssert.IsEmpty(failureMechanism.DuneLocations); @@ -211,12 +210,12 @@ var handler = new DuneLocationsReplacementHandler(viewCommands, failureMechanism); handler.Replace(new[] - { - new HydraulicBoundaryLocation(1, "test", 205354, 609735) - }); + { + new HydraulicBoundaryLocation(1, "test_100", 205354, 609735) + }); // Precondition - Assert.AreEqual(7, failureMechanism.DuneLocations.Count); + Assert.AreEqual(1, failureMechanism.DuneLocations.Count); // Call handler.DoPostReplacementUpdates(); Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs =================================================================== diff -u -r10f2cc06b330c326b3d79cd26c9e751fc0d63ea0 -r52eba23e512aa44f6d93c0041f22bf5934a8df12 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs (.../DuneErosionDataSynchronizationServiceTest.cs) (revision 10f2cc06b330c326b3d79cd26c9e751fc0d63ea0) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs (.../DuneErosionDataSynchronizationServiceTest.cs) (revision 52eba23e512aa44f6d93c0041f22bf5934a8df12) @@ -105,12 +105,12 @@ } [Test] - public void SetDuneLocations_DuneLocationMatchesWithHydraulicBoundaryLocation_DuneLocationAddedToFailureMechanism() + public void SetDuneLocations_DuneLocationOffsetMatchesWithHydraulicBoundaryLocationName_DuneLocationAddedToFailureMechanism() { // Setup var failureMechanism = new DuneErosionFailureMechanism(); var readDuneLocation = new ReadDuneLocation("dune location 1", new Point2D(1.0, 5.3), 8, 1.1, 2.2, 3.3); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "hydraulic location 1", 1.0, 5.3); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "Location_1.1", 1.0, 5.3); // Precondition CollectionAssert.IsEmpty(failureMechanism.DuneLocations); @@ -131,23 +131,43 @@ } [Test] - public void SetDuneLocation_DuneLocationNoMatchWithHydraulicBoundaryLocation_DuneLocationNotAddedToFailureMechanism() + [TestCaseSource(nameof(Locations))] + public void SetDuneLocation_DuneLocationNoMatchWithHydraulicBoundaryLocation_DuneLocationNotAddedToFailureMechanism(ReadDuneLocation readDuneLocation, + HydraulicBoundaryLocation hydraulicBoundaryLocation) { // Setup var failureMechanism = new DuneErosionFailureMechanism(); - var readDuneLocation = new ReadDuneLocation("dune location 1", new Point2D(1.0, 2.0), 0, 0, 0, 0); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "hydraulic location 1", 2.0, 1.0); // Precondition CollectionAssert.IsEmpty(failureMechanism.DuneLocations); // Call - DuneErosionDataSynchronizationService.SetDuneLocations(failureMechanism, new[] { hydraulicBoundaryLocation }, new[] { readDuneLocation }); + DuneErosionDataSynchronizationService.SetDuneLocations(failureMechanism, new[] + { + hydraulicBoundaryLocation + }, new[] + { + readDuneLocation + }); // Assert CollectionAssert.IsEmpty(failureMechanism.DuneLocations); } + private static IEnumerable Locations + { + get + { + yield return new TestCaseData( + new ReadDuneLocation("dune location 1", new Point2D(1.0, 2.0), 0, 0, 0, 0), + new HydraulicBoundaryLocation(1, "hydraulic location 1", 2.0, 1.0)).SetName("DifferentCoordinates"); + + yield return new TestCaseData( + new ReadDuneLocation("dune location 1", new Point2D(1.0, 2.0), 0, 2.2, 0, 0), + new HydraulicBoundaryLocation(1, "hydraulic_location_1.1", 1.0, 2.0)).SetName("DifferentOffset"); + } + } + [Test] public void ClearDuneLocationOutput_locationsNull_ThrowArgumentNullException() {