Index: Riskeer/Integration/src/Riskeer.Integration.Data/Merge/AssessmentSectionMergeData.cs
===================================================================
diff -u -rc36b47c2e1e8cf948767cca33f80ad735f370ad0 -ra0404ba256ba7bc2184c57d04237c98718c272b4
--- Riskeer/Integration/src/Riskeer.Integration.Data/Merge/AssessmentSectionMergeData.cs (.../AssessmentSectionMergeData.cs) (revision c36b47c2e1e8cf948767cca33f80ad735f370ad0)
+++ Riskeer/Integration/src/Riskeer.Integration.Data/Merge/AssessmentSectionMergeData.cs (.../AssessmentSectionMergeData.cs) (revision a0404ba256ba7bc2184c57d04237c98718c272b4)
@@ -20,6 +20,8 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
+using Riskeer.Common.Data.AssessmentSection;
namespace Riskeer.Integration.Data.Merge
{
@@ -35,6 +37,7 @@
/// The container of the properties for the
/// .
/// Thrown when any parameter is null.
+ /// Thrown when is null.
public AssessmentSectionMergeData(AssessmentSection assessmentSection,
ConstructionProperties properties)
{
@@ -48,6 +51,11 @@
throw new ArgumentNullException(nameof(properties));
}
+ if (properties.MergeFailurePaths == null)
+ {
+ throw new ArgumentException("MergeFailurePaths must be set");
+ }
+
AssessmentSection = assessmentSection;
MergePiping = properties.MergePiping;
@@ -68,6 +76,7 @@
MergeStrengthStabilityLengthwiseConstruction = properties.MergeStrengthStabilityLengthwiseConstruction;
MergeDuneErosion = properties.MergeDuneErosion;
MergeTechnicalInnovation = properties.MergeTechnicalInnovation;
+ MergeFailurePaths = properties.MergeFailurePaths;
}
///
@@ -166,6 +175,11 @@
public bool MergeTechnicalInnovation { get; }
///
+ /// Gets the collection of failure paths that should be merged.
+ ///
+ public IEnumerable MergeFailurePaths { get; }
+
+ ///
/// Container for properties for constructing an .
///
public class ConstructionProperties
@@ -259,6 +273,11 @@
/// Gets or sets the indicator whether technical innovation should be merged.
///
public bool MergeTechnicalInnovation { internal get; set; }
+
+ ///
+ /// Gets or sets the collection of failure paths that should be merged.
+ ///
+ public IEnumerable MergeFailurePaths { internal get; set; }
}
}
}
\ No newline at end of file
Index: Riskeer/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs
===================================================================
diff -u -rc955304a80f98036956cb8159e87efd406723894 -ra0404ba256ba7bc2184c57d04237c98718c272b4
--- Riskeer/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs (.../AssessmentSectionMergeDataProviderDialog.cs) (revision c955304a80f98036956cb8159e87efd406723894)
+++ Riskeer/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs (.../AssessmentSectionMergeDataProviderDialog.cs) (revision a0404ba256ba7bc2184c57d04237c98718c272b4)
@@ -25,6 +25,7 @@
using System.Windows.Forms;
using Core.Common.Controls.Dialogs;
using Riskeer.ClosingStructures.Data;
+using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.DuneErosion.Data;
using Riskeer.GrassCoverErosionInwards.Data;
@@ -101,7 +102,8 @@
MergeStabilityPointStructures = FailureMechanismIsSelectedToMerge(),
MergeStrengthStabilityLengthwiseConstruction = FailureMechanismIsSelectedToMerge(),
MergeDuneErosion = FailureMechanismIsSelectedToMerge(),
- MergeTechnicalInnovation = FailureMechanismIsSelectedToMerge()
+ MergeTechnicalInnovation = FailureMechanismIsSelectedToMerge(),
+ MergeFailurePaths = Enumerable.Empty()
};
return new AssessmentSectionMergeData((AssessmentSection) assessmentSectionComboBox.SelectedItem,
Index: Riskeer/Integration/test/Riskeer.Integration.Data.Test/Merge/AssessmentSectionMergeDataTest.cs
===================================================================
diff -u -rc36b47c2e1e8cf948767cca33f80ad735f370ad0 -ra0404ba256ba7bc2184c57d04237c98718c272b4
--- Riskeer/Integration/test/Riskeer.Integration.Data.Test/Merge/AssessmentSectionMergeDataTest.cs (.../AssessmentSectionMergeDataTest.cs) (revision c36b47c2e1e8cf948767cca33f80ad735f370ad0)
+++ Riskeer/Integration/test/Riskeer.Integration.Data.Test/Merge/AssessmentSectionMergeDataTest.cs (.../AssessmentSectionMergeDataTest.cs) (revision a0404ba256ba7bc2184c57d04237c98718c272b4)
@@ -20,6 +20,8 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
+using System.Linq;
using Core.Common.TestUtil;
using NUnit.Framework;
using Riskeer.Common.Data.AssessmentSection;
@@ -34,21 +36,21 @@
public void Constructor_AssessmentSectionNull_ThrowsArgumentNullException()
{
// Call
- TestDelegate call = () => new AssessmentSectionMergeData(null, new AssessmentSectionMergeData.ConstructionProperties());
+ void Call() => new AssessmentSectionMergeData(null, new AssessmentSectionMergeData.ConstructionProperties());
// Assert
- var exception = Assert.Throws(call);
+ var exception = Assert.Throws(Call);
Assert.AreEqual("assessmentSection", exception.ParamName);
}
[Test]
public void Constructor_PropertiesNull_ThrowsArgumentNullException()
{
// Call
- TestDelegate call = () => new AssessmentSectionMergeData(new AssessmentSection(AssessmentSectionComposition.Dike), null);
+ void Call() => new AssessmentSectionMergeData(new AssessmentSection(AssessmentSectionComposition.Dike), null);
// Assert
- var exception = Assert.Throws(call);
+ var exception = Assert.Throws(Call);
Assert.AreEqual("properties", exception.ParamName);
}
@@ -59,7 +61,11 @@
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
// Call
- var mergeData = new AssessmentSectionMergeData(assessmentSection, new AssessmentSectionMergeData.ConstructionProperties());
+ var mergeData = new AssessmentSectionMergeData(assessmentSection,
+ new AssessmentSectionMergeData.ConstructionProperties
+ {
+ MergeFailurePaths = Enumerable.Empty()
+ });
// Assert
Assert.AreSame(assessmentSection, mergeData.AssessmentSection);
@@ -90,6 +96,7 @@
var random = new Random(21);
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
+ IEnumerable failurePaths = Enumerable.Empty();
var constructionProperties = new AssessmentSectionMergeData.ConstructionProperties
{
MergePiping = random.NextBoolean(),
@@ -109,7 +116,8 @@
MergeStabilityPointStructures = random.NextBoolean(),
MergeStrengthStabilityLengthwiseConstruction = random.NextBoolean(),
MergeDuneErosion = random.NextBoolean(),
- MergeTechnicalInnovation = random.NextBoolean()
+ MergeTechnicalInnovation = random.NextBoolean(),
+ MergeFailurePaths = failurePaths
};
// Call
@@ -135,6 +143,19 @@
Assert.AreEqual(constructionProperties.MergeStrengthStabilityLengthwiseConstruction, mergeData.MergeStrengthStabilityLengthwiseConstruction);
Assert.AreEqual(constructionProperties.MergeDuneErosion, mergeData.MergeDuneErosion);
Assert.AreEqual(constructionProperties.MergeTechnicalInnovation, mergeData.MergeTechnicalInnovation);
+ Assert.AreSame(constructionProperties.MergeFailurePaths, mergeData.MergeFailurePaths);
}
+
+ [Test]
+ public void Constructor_MergeFailurePathsNull_ThrowsArgumentException()
+ {
+ // Call
+ void Call() => new AssessmentSectionMergeData(new AssessmentSection(AssessmentSectionComposition.Dike),
+ new AssessmentSectionMergeData.ConstructionProperties());
+
+ // Assert
+ const string expectedMessage = "MergeFailurePaths must be set";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(Call, expectedMessage);
+ }
}
}
\ No newline at end of file