Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Factories/GrassCoverErosionOutwardsMapDataFeaturesFactory.cs =================================================================== diff -u -r100e1b371b9804e3e03c96353b6cec71074522d9 -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Factories/GrassCoverErosionOutwardsMapDataFeaturesFactory.cs (.../GrassCoverErosionOutwardsMapDataFeaturesFactory.cs) (revision 100e1b371b9804e3e03c96353b6cec71074522d9) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Factories/GrassCoverErosionOutwardsMapDataFeaturesFactory.cs (.../GrassCoverErosionOutwardsMapDataFeaturesFactory.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -38,23 +38,23 @@ internal static class GrassCoverErosionOutwardsMapDataFeaturesFactory { /// - /// Create calculation features based on the provided . + /// Create calculation features based on the provided . /// - /// The collection of to create the calculation features for. - /// A collection of features or an empty collection when is null or empty. - public static IEnumerable CreateCalculationFeatures(IEnumerable calculationInputs) + /// The collection of to create the calculation features for. + /// A collection of features or an empty collection when is null or empty. + public static IEnumerable CreateCalculationFeatures(IEnumerable calculations) { - bool hasCalculations = calculationInputs != null && calculationInputs.Any(); + bool hasCalculations = calculations != null && calculations.Any(); if (!hasCalculations) { return new MapFeature[0]; } IEnumerable calculationsWithLocationAndHydraulicBoundaryLocation = - calculationInputs.Where(calculation => - calculation.InputParameters.ForeshoreProfile != null && - calculation.InputParameters.HydraulicBoundaryLocation != null); + calculations.Where(calculation => + calculation.InputParameters.ForeshoreProfile != null && + calculation.InputParameters.HydraulicBoundaryLocation != null); MapCalculationData[] calculationData = calculationsWithLocationAndHydraulicBoundaryLocation.Select( @@ -70,8 +70,8 @@ /// Create hydraulic boundary location features based on the provided /// and . /// - /// The to create the location features for. - /// The failure mechanism to create the locations for. + /// The assessment section to create the location features for. + /// The failure mechanism to create the location features for. /// A collection of features. /// Thrown when any parameter is null. public static IEnumerable CreateHydraulicBoundaryLocationsFeatures(IAssessmentSection assessmentSection, @@ -87,9 +87,11 @@ throw new ArgumentNullException(nameof(failureMechanism)); } + var metaDataAttributeNameProvider = new GrassCoverErosionOutwardsHydraulicBoundaryLocationMetaDataAttributeNameProvider(); + return GrassCoverErosionOutwardsAggregatedHydraulicBoundaryLocationFactory.CreateAggregatedHydraulicBoundaryLocations(assessmentSection, failureMechanism) .Select(location => GrassCoverErosionOutwardsHydraulicBoundaryLocationMapDataFeaturesFactory.CreateHydraulicBoundaryLocationFeature( - location, new GrassCoverErosionOutwardsHydraulicBoundaryLocationMetaDataAttributeNameProvider())) + location, metaDataAttributeNameProvider)) .ToArray(); } } Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs =================================================================== diff -u -rd202a2a1f29d9ac67b4565bb88ded58baf9753a7 -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs (.../GrassCoverErosionOutwardsFailureMechanismView.cs) (revision d202a2a1f29d9ac67b4565bb88ded58baf9753a7) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs (.../GrassCoverErosionOutwardsFailureMechanismView.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -75,6 +75,9 @@ /// /// Creates a new instance of . /// + /// The failure mechanism to show the data for. + /// The assessment section to show the data for. + /// Thrown when any parameter is null. public GrassCoverErosionOutwardsFailureMechanismView(GrassCoverErosionOutwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Exporters/GrassCoverErosionOutwardsHydraulicBoundaryLocationsWriter.cs =================================================================== diff -u -r9134b288215ec6dd8b2d1eb5f5f0c9603baa734d -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Exporters/GrassCoverErosionOutwardsHydraulicBoundaryLocationsWriter.cs (.../GrassCoverErosionOutwardsHydraulicBoundaryLocationsWriter.cs) (revision 9134b288215ec6dd8b2d1eb5f5f0c9603baa734d) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Exporters/GrassCoverErosionOutwardsHydraulicBoundaryLocationsWriter.cs (.../GrassCoverErosionOutwardsHydraulicBoundaryLocationsWriter.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -35,6 +35,9 @@ /// internal static class GrassCoverErosionOutwardsHydraulicBoundaryLocationsWriter { + private static readonly GrassCoverErosionOutwardsHydraulicBoundaryLocationExportMetaDataAttributeNameProvider metaDataAttributeNameProvider + = new GrassCoverErosionOutwardsHydraulicBoundaryLocationExportMetaDataAttributeNameProvider(); + /// /// Writes the collection of as point features in a shapefile. /// @@ -74,7 +77,7 @@ Features = new[] { GrassCoverErosionOutwardsHydraulicBoundaryLocationMapDataFeaturesFactory.CreateHydraulicBoundaryLocationFeature( - location, new GrassCoverErosionOutwardsHydraulicBoundaryLocationExportMetaDataAttributeNameProvider()) + location, metaDataAttributeNameProvider) } }; } Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Factories/GrassCoverErosionOutwardsMapDataFeaturesFactoryTest.cs =================================================================== diff -u -red32f16291395cfecffba5a76a98466f3c27b4b3 -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Factories/GrassCoverErosionOutwardsMapDataFeaturesFactoryTest.cs (.../GrassCoverErosionOutwardsMapDataFeaturesFactoryTest.cs) (revision ed32f16291395cfecffba5a76a98466f3c27b4b3) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Factories/GrassCoverErosionOutwardsMapDataFeaturesFactoryTest.cs (.../GrassCoverErosionOutwardsMapDataFeaturesFactoryTest.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -22,7 +22,6 @@ using System; using System.Collections.Generic; using System.Linq; -using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Core.Components.Gis.Features; using Core.Components.Gis.Geometries; @@ -31,9 +30,9 @@ using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; -using Ringtoets.Common.Util.TestUtil; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.GrassCoverErosionOutwards.Forms.Factories; +using Ringtoets.GrassCoverErosionOutwards.Forms.TestUtil; using Ringtoets.GrassCoverErosionOutwards.Util.TestUtil; namespace Ringtoets.GrassCoverErosionOutwards.Forms.Test.Factories @@ -149,83 +148,12 @@ MapFeature[] features = GrassCoverErosionOutwardsMapDataFeaturesFactory.CreateHydraulicBoundaryLocationsFeatures(assessmentSection, failureMechanism).ToArray(); // Assert - AssertHydraulicBoundaryFeaturesData(assessmentSection, failureMechanism, features); - - Point2D[] expectedPoints = assessmentSection.HydraulicBoundaryDatabase.Locations - .Select(location => location.Location) - .ToArray(); - AssertEqualFeatureCollections( - expectedPoints, features); + GrassCoverErosionOutwardsMapFeaturesTestHelper.AssertHydraulicBoundaryFeaturesData(failureMechanism, assessmentSection, features); } - private static void AssertHydraulicBoundaryFeaturesData(IAssessmentSection assessmentSection, GrassCoverErosionOutwardsFailureMechanism failureMechanism, IEnumerable features) - { - HydraulicBoundaryLocation[] hydraulicBoundaryLocationsArray = assessmentSection.HydraulicBoundaryDatabase.Locations.ToArray(); - int expectedNrOfFeatures = hydraulicBoundaryLocationsArray.Length; - Assert.AreEqual(expectedNrOfFeatures, features.Count()); - - for (var i = 0; i < expectedNrOfFeatures; i++) - { - HydraulicBoundaryLocation hydraulicBoundaryLocation = hydraulicBoundaryLocationsArray[i]; - MapFeature mapFeature = features.ElementAt(i); - - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(failureMechanism.WaterLevelCalculationsForMechanismSpecificFactorizedSignalingNorm, hydraulicBoundaryLocation), - mapFeature, "h(Iv->IIv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(failureMechanism.WaterLevelCalculationsForMechanismSpecificSignalingNorm, hydraulicBoundaryLocation), - mapFeature, "h(IIv->IIIv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(failureMechanism.WaterLevelCalculationsForMechanismSpecificLowerLimitNorm, hydraulicBoundaryLocation), - mapFeature, "h(IIIv->IVv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(assessmentSection.WaterLevelCalculationsForLowerLimitNorm, hydraulicBoundaryLocation), - mapFeature, "h(IVv->Vv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(assessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm, hydraulicBoundaryLocation), - mapFeature, "h(Vv->VIv)"); - - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(failureMechanism.WaveHeightCalculationsForMechanismSpecificFactorizedSignalingNorm, hydraulicBoundaryLocation), - mapFeature, "hs(Iv->IIv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(failureMechanism.WaveHeightCalculationsForMechanismSpecificSignalingNorm, hydraulicBoundaryLocation), - mapFeature, "hs(IIv->IIIv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(failureMechanism.WaveHeightCalculationsForMechanismSpecificLowerLimitNorm, hydraulicBoundaryLocation), - mapFeature, "hs(IIIv->IVv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(assessmentSection.WaveHeightCalculationsForLowerLimitNorm, hydraulicBoundaryLocation), - mapFeature, "hs(IVv->Vv)"); - MapFeaturesMetaDataTestHelper.AssertHydraulicBoundaryLocationOutputMetaData( - GetExpectedResult(assessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm, hydraulicBoundaryLocation), - mapFeature, "hs(Vv->VIv)"); - } - } - - private static RoundedDouble GetExpectedResult(IEnumerable calculations, - HydraulicBoundaryLocation hydraulicBoundaryLocation) - { - return calculations - .Single(calculation => calculation.HydraulicBoundaryLocation.Equals(hydraulicBoundaryLocation)) - .Output?.Result ?? RoundedDouble.NaN; - } - private static void AssertEqualPointCollections(IEnumerable points, MapGeometry geometry) { CollectionAssert.AreEqual(points.Select(p => new Point2D(p)), geometry.PointCollections.First()); } - - private static void AssertEqualFeatureCollections(IEnumerable points, IEnumerable features) - { - Assert.AreEqual(points.Count(), features.Count()); - for (var i = 0; i < points.Count(); i++) - { - CollectionAssert.AreEqual(new[] - { - points.ElementAt(i) - }, features.ElementAt(i).MapGeometries.First().PointCollections.First()); - } - } } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs =================================================================== diff -u -red32f16291395cfecffba5a76a98466f3c27b4b3 -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewTest.cs) (revision ed32f16291395cfecffba5a76a98466f3c27b4b3) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewTest.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -211,6 +211,7 @@ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationA); failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationB); + GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.SetHydraulicBoundaryLocations(failureMechanism, assessmentSection, new[] { new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) @@ -267,7 +268,6 @@ // When GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.SetHydraulicBoundaryLocations(failureMechanism, assessmentSection, new[] { - new HydraulicBoundaryLocation(1, "test", 1.0, 2.0), new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0) }); assessmentSection.HydraulicBoundaryDatabase.Locations.NotifyObservers(); Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/ViewInfos/GrassCoverErosionOutwardsFailureMechanismViewInfoTest.cs =================================================================== diff -u -r6f33b44599df032ecae3342b0aacd606a9e87c1f -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/ViewInfos/GrassCoverErosionOutwardsFailureMechanismViewInfoTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewInfoTest.cs) (revision 6f33b44599df032ecae3342b0aacd606a9e87c1f) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/ViewInfos/GrassCoverErosionOutwardsFailureMechanismViewInfoTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewInfoTest.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -203,6 +203,10 @@ // Assert Assert.IsInstanceOf(view); + + var failureMechanismView = (GrassCoverErosionOutwardsFailureMechanismView) view; + Assert.AreSame(failureMechanism, failureMechanismView.FailureMechanism); + Assert.AreSame(assessmentSection, failureMechanismView.AssessmentSection); } } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test/GrassCoverErosionOutwardsAggregatedHydraulicBoundaryLocationTestHelperTest.cs =================================================================== diff -u -rfdc234cef8ac08612171d1c7f2ad126e8ffc94d3 -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test/GrassCoverErosionOutwardsAggregatedHydraulicBoundaryLocationTestHelperTest.cs (.../GrassCoverErosionOutwardsAggregatedHydraulicBoundaryLocationTestHelperTest.cs) (revision fdc234cef8ac08612171d1c7f2ad126e8ffc94d3) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test/GrassCoverErosionOutwardsAggregatedHydraulicBoundaryLocationTestHelperTest.cs (.../GrassCoverErosionOutwardsAggregatedHydraulicBoundaryLocationTestHelperTest.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -53,6 +53,7 @@ Assert.IsFalse(double.IsNaN(location.WaveHeightCalculationForLowerLimitNorm)); Assert.IsFalse(double.IsNaN(location.WaveHeightCalculationForFactorizedLowerLimitNorm)); } + [Test] public void Create_WithParameters_ReturnGrassCoverErosionOutwardsAggregatedHydraulicBoundaryLocation() { Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test.csproj =================================================================== diff -u -rfdc234cef8ac08612171d1c7f2ad126e8ffc94d3 -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test.csproj) (revision fdc234cef8ac08612171d1c7f2ad126e8ffc94d3) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Util.TestUtil.Test.csproj) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -29,10 +29,6 @@ {3bbfd65b-b277-4e50-ae6d-bd24c3434609} Core.Common.Base - - {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98} - Core.Common.Util - {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil/GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.cs =================================================================== diff -u -red32f16291395cfecffba5a76a98466f3c27b4b3 -re1c27b68145eb5867a2c08ac1ee18bb671205bbf --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil/GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.cs (.../GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.cs) (revision ed32f16291395cfecffba5a76a98466f3c27b4b3) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Util.TestUtil/GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.cs (.../GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.cs) (revision e1c27b68145eb5867a2c08ac1ee18bb671205bbf) @@ -63,8 +63,7 @@ } } - private static void CreateHydraulicBoundaryLocationCalculationsOutput( - IEnumerable hydraulicBoundaryLocationCalculations) + private static void CreateHydraulicBoundaryLocationCalculationsOutput(IEnumerable hydraulicBoundaryLocationCalculations) { foreach (HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation in hydraulicBoundaryLocationCalculations) {