Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs =================================================================== diff -u -rfcad48d7beb394e1ac15cfe4289a7381e05aa883 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs (.../StabilityPointStructuresInputContextProperties.cs) (revision fcad48d7beb394e1ac15cfe4289a7381e05aa883) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs (.../StabilityPointStructuresInputContextProperties.cs) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -36,6 +36,7 @@ using Ringtoets.StabilityPointStructures.Data; using Ringtoets.StabilityPointStructures.Forms.PresentationObjects; using Ringtoets.StabilityPointStructures.Forms.Properties; +using Ringtoets.StabilityPointStructures.Util; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.StabilityPointStructures.Forms.PropertyClasses @@ -177,9 +178,7 @@ protected override void AfterSettingStructure() { - StructuresHelper.UpdateCalculationToSectionResultAssignments( - data.FailureMechanism.SectionResults, - data.FailureMechanism.Calculations.Cast>()); + StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(data.FailureMechanism); } protected override bool ShouldPropertyBeReadOnlyInAbsenseOfStructure(string property) Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Ringtoets.StabilityPointStructures.Forms.csproj =================================================================== diff -u -rd7696913d8f9239cb80eb2c3bac6cc0ccf23d479 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Ringtoets.StabilityPointStructures.Forms.csproj (.../Ringtoets.StabilityPointStructures.Forms.csproj) (revision d7696913d8f9239cb80eb2c3bac6cc0ccf23d479) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Ringtoets.StabilityPointStructures.Forms.csproj (.../Ringtoets.StabilityPointStructures.Forms.csproj) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -109,6 +109,11 @@ Ringtoets.StabilityPointStructures.Data False + + {c8832e89-8543-4f2b-9952-8d6c03118392} + Ringtoets.StabilityPointStructures.Util + False + Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Configurations/StabilityPointStructuresCalculationConfigurationImporter.cs =================================================================== diff -u -rfcad48d7beb394e1ac15cfe4289a7381e05aa883 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Configurations/StabilityPointStructuresCalculationConfigurationImporter.cs (.../StabilityPointStructuresCalculationConfigurationImporter.cs) (revision fcad48d7beb394e1ac15cfe4289a7381e05aa883) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Configurations/StabilityPointStructuresCalculationConfigurationImporter.cs (.../StabilityPointStructuresCalculationConfigurationImporter.cs) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -34,6 +34,7 @@ using Ringtoets.StabilityPointStructures.Data; using Ringtoets.StabilityPointStructures.IO.Configurations.Helpers; using Ringtoets.StabilityPointStructures.IO.Properties; +using Ringtoets.StabilityPointStructures.Util; using RingtoetsCommonIOResources = Ringtoets.Common.IO.Properties.Resources; namespace Ringtoets.StabilityPointStructures.IO.Configurations @@ -98,9 +99,7 @@ protected override void DoPostImportUpdates() { - StructuresHelper.UpdateCalculationToSectionResultAssignments( - failureMechanism.SectionResults, - failureMechanism.Calculations.Cast>()); + StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(failureMechanism); base.DoPostImportUpdates(); } Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Ringtoets.StabilityPointStructures.IO.csproj =================================================================== diff -u -rfcad48d7beb394e1ac15cfe4289a7381e05aa883 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Ringtoets.StabilityPointStructures.IO.csproj (.../Ringtoets.StabilityPointStructures.IO.csproj) (revision fcad48d7beb394e1ac15cfe4289a7381e05aa883) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Ringtoets.StabilityPointStructures.IO.csproj (.../Ringtoets.StabilityPointStructures.IO.csproj) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -71,6 +71,11 @@ Ringtoets.StabilityPointStructures.Data False + + {c8832e89-8543-4f2b-9952-8d6c03118392} + Ringtoets.StabilityPointStructures.Util + False + Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj =================================================================== diff -u -rfcad48d7beb394e1ac15cfe4289a7381e05aa883 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj (.../Ringtoets.StabilityPointStructures.Plugin.csproj) (revision fcad48d7beb394e1ac15cfe4289a7381e05aa883) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj (.../Ringtoets.StabilityPointStructures.Plugin.csproj) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -104,5 +104,10 @@ Ringtoets.StabilityPointStructures.Service False + + {c8832e89-8543-4f2b-9952-8d6c03118392} + Ringtoets.StabilityPointStructures.Util + False + \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs =================================================================== diff -u -r6e59a4f91d0acc68c0dc768b8f740a610d4fbde3 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 6e59a4f91d0acc68c0dc768b8f740a610d4fbde3) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -46,7 +46,6 @@ using Ringtoets.Common.IO.FileImporters.MessageProviders; using Ringtoets.Common.IO.Structures; using Ringtoets.Common.Service; -using Ringtoets.Common.Util; using Ringtoets.StabilityPointStructures.Data; using Ringtoets.StabilityPointStructures.Forms.PresentationObjects; using Ringtoets.StabilityPointStructures.Forms.PropertyClasses; @@ -55,6 +54,7 @@ using Ringtoets.StabilityPointStructures.IO.Configurations; using Ringtoets.StabilityPointStructures.Plugin.FileImporters; using Ringtoets.StabilityPointStructures.Service; +using Ringtoets.StabilityPointStructures.Util; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; using RingtoetsCommonIOResources = Ringtoets.Common.IO.Properties.Resources; @@ -661,7 +661,9 @@ } } - private static void GenerateStabilityPointStructuresCalculations(StabilityPointStructuresFailureMechanism failureMechanism, IEnumerable structures, List calculations) + private static void GenerateStabilityPointStructuresCalculations(StabilityPointStructuresFailureMechanism failureMechanism, + IEnumerable structures, + List calculations) { foreach (StabilityPointStructure structure in structures) { @@ -676,9 +678,7 @@ calculations.Add(calculation); } - StructuresHelper.UpdateCalculationToSectionResultAssignments( - failureMechanism.SectionResults, - failureMechanism.Calculations.Cast>()); + StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(failureMechanism); } private static void CalculationGroupContextOnNodeRemoved(StabilityPointStructuresCalculationGroupContext context, object parentNodeData) @@ -687,9 +687,7 @@ parentGroupContext.WrappedData.Children.Remove(context.WrappedData); - StructuresHelper.UpdateCalculationToSectionResultAssignments( - context.FailureMechanism.SectionResults, - context.FailureMechanism.Calculations.Cast>().ToArray()); + StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(context.FailureMechanism); parentGroupContext.NotifyObservers(); } @@ -802,9 +800,7 @@ if (calculationGroupContext != null) { calculationGroupContext.WrappedData.Children.Remove(context.WrappedData); - StructuresHelper.UpdateCalculationToSectionResultAssignments( - context.FailureMechanism.SectionResults, - context.FailureMechanism.Calculations.Cast>()); + StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(context.FailureMechanism); calculationGroupContext.NotifyObservers(); } } Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Util/Ringtoets.StabilityPointStructures.Util.csproj =================================================================== diff -u -rb148f2c61b813fd11f316acfc1a21135bb622248 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Util/Ringtoets.StabilityPointStructures.Util.csproj (.../Ringtoets.StabilityPointStructures.Util.csproj) (revision b148f2c61b813fd11f316acfc1a21135bb622248) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Util/Ringtoets.StabilityPointStructures.Util.csproj (.../Ringtoets.StabilityPointStructures.Util.csproj) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -12,10 +12,33 @@ + Copying.licenseheader + + + {3bbfd65b-b277-4e50-ae6d-bd24c3434609} + Core.Common.Base + False + + + {d4200f43-3f72-4f42-af0a-8ced416a38ec} + Ringtoets.Common.Data + False + + + {6a074d65-a81c-4c1c-8e24-f36c916e4ed7} + Ringtoets.Common.Util + False + + + {3d4b9740-8348-4434-8d77-b611fc6ee57f} + Ringtoets.StabilityPointStructures.Data + False + + \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Util/StabilityPointStructuresHelper.cs =================================================================== diff -u --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Util/StabilityPointStructuresHelper.cs (revision 0) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Util/StabilityPointStructuresHelper.cs (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -0,0 +1,87 @@ +// Copyright (C) Stichting Deltares 2017. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets 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.Common.Base; +using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.Util; +using Ringtoets.StabilityPointStructures.Data; + +namespace Ringtoets.StabilityPointStructures.Util +{ + /// + /// Class holds helper methods to match objects + /// with objects. + /// + public static class StabilityPointStructuresHelper + { + /// + /// Updates the for each element + /// of if required due to a change. + /// + /// The failure mechanism which contains the + /// and calculations to update with. + /// All affected objects by the update. + /// Thrown when is null. + public static IEnumerable UpdateCalculationToSectionResultAssignments(StabilityPointStructuresFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + IObservableEnumerable sectionResults = failureMechanism.SectionResults2; + IEnumerable> calculations = failureMechanism.Calculations + .Cast>(); + return AssignUnassignCalculations.Update(sectionResults.Select(AsCalculationAssignment), + AsCalculationsWithLocations(calculations)) + .Cast() + .ToArray(); + } + + private static IEnumerable AsCalculationsWithLocations( + IEnumerable> calculations) + { + var calculationsWithLocation = new List(); + foreach (StructuresCalculation calculation in calculations) + { + if (calculation.InputParameters.Structure != null) + { + calculationsWithLocation.Add(new CalculationWithLocation(calculation, + calculation.InputParameters.Structure.Location)); + } + } + + return calculationsWithLocation; + } + + private static SectionResultWithCalculationAssignment AsCalculationAssignment( + StabilityPointStructuresFailureMechanismSectionResult failureMechanismSectionResult) + { + return new SectionResultWithCalculationAssignment( + failureMechanismSectionResult, + result => ((StabilityPointStructuresFailureMechanismSectionResult)result).Calculation, + (result, calculation) => ((StabilityPointStructuresFailureMechanismSectionResult)result).Calculation = (StructuresCalculation)calculation); + } + } +} \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/PropertyClasses/StabilityPointStructuresInputContextPropertiesTest.cs =================================================================== diff -u -rd485f27eb5a6d688406882dce60c3229e22f2ac2 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/PropertyClasses/StabilityPointStructuresInputContextPropertiesTest.cs (.../StabilityPointStructuresInputContextPropertiesTest.cs) (revision d485f27eb5a6d688406882dce60c3229e22f2ac2) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/PropertyClasses/StabilityPointStructuresInputContextPropertiesTest.cs (.../StabilityPointStructuresInputContextPropertiesTest.cs) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -1457,7 +1457,7 @@ var handler = new SetPropertyValueAfterConfirmationParameterTester(Enumerable.Empty()); var properties = new StabilityPointStructuresInputContextProperties(inputContext, handler); - failureMechanism.AddSection(new FailureMechanismSection("Section", new List + failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(-10.0, -10.0), new Point2D(10.0, 10.0) @@ -1468,7 +1468,7 @@ properties.Structure = newStructure; // Assert - Assert.AreSame(calculation, failureMechanism.SectionResults.ElementAt(0).Calculation); + Assert.AreSame(calculation, failureMechanism.SectionResults2.ElementAt(0).Calculation); mockRepository.VerifyAll(); } Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Configurations/StabilityPointStructuresCalculationConfigurationImporterTest.cs =================================================================== diff -u -ref881721312166028ed88eaa21dfd1ee8a5cbba4 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Configurations/StabilityPointStructuresCalculationConfigurationImporterTest.cs (.../StabilityPointStructuresCalculationConfigurationImporterTest.cs) (revision ef881721312166028ed88eaa21dfd1ee8a5cbba4) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Configurations/StabilityPointStructuresCalculationConfigurationImporterTest.cs (.../StabilityPointStructuresCalculationConfigurationImporterTest.cs) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -1111,7 +1111,7 @@ var failureMechanism = new StabilityPointStructuresFailureMechanism(); - failureMechanism.AddSection(new FailureMechanismSection("name", new[] + failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(0, 0), new Point2D(10, 10) @@ -1136,14 +1136,14 @@ failureMechanism); // Preconditions - Assert.AreEqual(1, failureMechanism.SectionResults.Count()); - Assert.IsNull(failureMechanism.SectionResults.ElementAt(0).Calculation); + Assert.AreEqual(1, failureMechanism.SectionResults2.Count()); + Assert.IsNull(failureMechanism.SectionResults2.ElementAt(0).Calculation); // Call importer.DoPostImport(); // Assert - Assert.AreSame(calculation, failureMechanism.SectionResults.ElementAt(0).Calculation); + Assert.AreSame(calculation, failureMechanism.SectionResults2.ElementAt(0).Calculation); } [TestCase("validConfigurationUnknownForeshoreProfile.xml", Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/Ringtoets.StabilityPointStructures.Plugin.Test.csproj =================================================================== diff -u -re1a93747d105f27392f4bc0655694810c7d29f4d -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/Ringtoets.StabilityPointStructures.Plugin.Test.csproj (.../Ringtoets.StabilityPointStructures.Plugin.Test.csproj) (revision e1a93747d105f27392f4bc0655694810c7d29f4d) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/Ringtoets.StabilityPointStructures.Plugin.Test.csproj (.../Ringtoets.StabilityPointStructures.Plugin.Test.csproj) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -137,6 +137,10 @@ {E3DF5559-97D9-4038-BBE6-2E3DFB4F4C68} Ringtoets.StabilityPointStructures.Plugin + + {C8832E89-8543-4F2B-9952-8D6C03118392} + Ringtoets.StabilityPointStructures.Util + {E9AC095B-8F10-41D2-9456-4A85E3BA91AD} Ringtoets.StabilityPointStructures.Data.TestUtil Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs =================================================================== diff -u -r56246f10e7876b30f36a5b9709ec2e3332b4010a -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs (.../StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs) (revision 56246f10e7876b30f36a5b9709ec2e3332b4010a) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs (.../StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -1146,12 +1146,9 @@ group.Children.Add(elementToBeRemoved); - failureMechanism.AddSection(new FailureMechanismSection("section", new[] - { - new Point2D(0, 0) - })); + failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - StructuresFailureMechanismSectionResult result = failureMechanism.SectionResults.First(); + StabilityPointStructuresFailureMechanismSectionResult result = failureMechanism.SectionResults2.First(); result.Calculation = elementToBeRemoved; // Call Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r56246f10e7876b30f36a5b9709ec2e3332b4010a -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationGroupContextTreeNodeInfoTest.cs (.../StabilityPointStructuresCalculationGroupContextTreeNodeInfoTest.cs) (revision 56246f10e7876b30f36a5b9709ec2e3332b4010a) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationGroupContextTreeNodeInfoTest.cs (.../StabilityPointStructuresCalculationGroupContextTreeNodeInfoTest.cs) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -1693,15 +1693,12 @@ parentGroup.Children.Add(group); - failureMechanism.AddSection(new FailureMechanismSection("section", new[] - { - new Point2D(0, 0) - })); + failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); var calculation = new StructuresCalculation(); group.Children.Add(calculation); - StructuresFailureMechanismSectionResult result = failureMechanism.SectionResults.First(); + StabilityPointStructuresFailureMechanismSectionResult result = failureMechanism.SectionResults2.First(); result.Calculation = calculation; // Call Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/Ringtoets.StabilityPointStructures.Util.Test.csproj =================================================================== diff -u -rb148f2c61b813fd11f316acfc1a21135bb622248 -rac2591ff2b3c8bd665344f1a5ec1126e31ae2292 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/Ringtoets.StabilityPointStructures.Util.Test.csproj (.../Ringtoets.StabilityPointStructures.Util.Test.csproj) (revision b148f2c61b813fd11f316acfc1a21135bb622248) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/Ringtoets.StabilityPointStructures.Util.Test.csproj (.../Ringtoets.StabilityPointStructures.Util.Test.csproj) (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -7,15 +7,46 @@ + + ..\..\..\..\packages\NUnit.3.8.1\lib\net40\nunit.framework.dll + + Copying.licenseheader + + + + {3BBFD65B-B277-4E50-AE6D-BD24C3434609} + Core.Common.Base + + + {D4200F43-3F72-4F42-AF0A-8CED416A38EC} + Ringtoets.Common.Data + + + {4843D6E5-066F-4795-94F5-1D53932DD03C} + Ringtoets.Common.Data.TestUtil + + + {3D4B9740-8348-4434-8D77-B611FC6EE57F} + Ringtoets.StabilityPointStructures.Data + + + {C8832E89-8543-4F2B-9952-8D6C03118392} + Ringtoets.StabilityPointStructures.Util + + + {E9AC095B-8F10-41D2-9456-4A85E3BA91AD} + Ringtoets.StabilityPointStructures.Data.TestUtil + + \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/StabilityPointStructuresHelperTest.cs =================================================================== diff -u --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/StabilityPointStructuresHelperTest.cs (revision 0) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/StabilityPointStructuresHelperTest.cs (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -0,0 +1,114 @@ +// Copyright (C) Stichting Deltares 2017. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets 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.Geometry; +using NUnit.Framework; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.Data.TestUtil; +using Ringtoets.StabilityPointStructures.Data; +using Ringtoets.StabilityPointStructures.Data.TestUtil; + +namespace Ringtoets.StabilityPointStructures.Util.Test +{ + [TestFixture] + public class StabilityPointStructuresHelperTest + { + [Test] + public void UpdateCalculationToSectionResultAssignments_FailureMechanismNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("failureMechanism", exception.ParamName); + } + + [Test] + public void UpdateCalculationToSectionResultAssignments_SectionResultWithCalculationNoRemainingCalculations_SectionResultCalculationIsNull() + { + // Setup + var location = new Point2D(1, 1); + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + failureMechanism.AddSection(CreateFailureMechanismSection(location)); + + StabilityPointStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults2.First(); + sectionResult.Calculation = CreateCalculation(location); + + // Call + StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(failureMechanism); + + // Assert + Assert.IsNull(sectionResult.Calculation); + } + + [Test] + public void UpdateCalculationToSectionResultAssignments_SectionResultWithCalculationWithRemainingCalculations_SectionResultCalculationSetToRemainingCalculation() + { + // Setup + var location = new Point2D(1, 1); + StructuresCalculation remainingCalculation = CreateCalculation(new Point2D(10, 10)); + var failureMechanism = new StabilityPointStructuresFailureMechanism + { + CalculationsGroup = + { + Children = + { + remainingCalculation + } + } + }; + failureMechanism.AddSection(CreateFailureMechanismSection(location)); + + StabilityPointStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults2.First(); + sectionResult.Calculation = CreateCalculation(location); + + // Call + StabilityPointStructuresHelper.UpdateCalculationToSectionResultAssignments(failureMechanism); + + // Assert + Assert.AreSame(remainingCalculation, sectionResult.Calculation); + } + + private static FailureMechanismSection CreateFailureMechanismSection(Point2D endPoint) + { + return FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] + { + new Point2D(0, 0), + endPoint + }); + } + + private static StructuresCalculation CreateCalculation(Point2D location) + { + return new StructuresCalculation + { + InputParameters = + { + Structure = new TestStabilityPointStructure(location) + } + }; + } + } +} \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/packages.config =================================================================== diff -u --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/packages.config (revision 0) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Util.Test/packages.config (revision ac2591ff2b3c8bd665344f1a5ec1126e31ae2292) @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file