Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableCombinedSectionAssemblyFactory.cs
===================================================================
diff -u -r6987efa7ae64f10c5c00802ca6b3ba0c08cd5ab7 -r8207feaf9b12bc87b924cde143f7af6a8eac0f0b
--- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableCombinedSectionAssemblyFactory.cs (.../ExportableCombinedSectionAssemblyFactory.cs) (revision 6987efa7ae64f10c5c00802ca6b3ba0c08cd5ab7)
+++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableCombinedSectionAssemblyFactory.cs (.../ExportableCombinedSectionAssemblyFactory.cs) (revision 8207feaf9b12bc87b924cde143f7af6a8eac0f0b)
@@ -29,6 +29,7 @@
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Integration.Data;
using Riskeer.Integration.Data.Assembly;
+using Riskeer.Integration.IO.Exceptions;
using Riskeer.Integration.Util;
namespace Riskeer.Integration.IO.Factories
@@ -47,6 +48,8 @@
/// The the section results belong to.
/// A collection of .
/// Thrown when any parameter is null.
+ /// Thrown when
+ /// is invalid and cannot be exported.
public static IEnumerable CreateExportableCombinedSectionAssemblyCollection(
IEnumerable combinedSectionAssemblyResults,
AssessmentSection assessmentSection)
@@ -64,6 +67,12 @@
var sectionResults = new List();
foreach (CombinedFailureMechanismSectionAssemblyResult assemblyResult in combinedSectionAssemblyResults)
{
+ if (assemblyResult.TotalResult == FailureMechanismSectionAssemblyGroup.NoResult
+ || assemblyResult.TotalResult == FailureMechanismSectionAssemblyGroup.Dominant)
+ {
+ throw new AssemblyFactoryException("The assembly result is invalid and cannot be created.");
+ }
+
var exportableSection = new ExportableCombinedFailureMechanismSection(
"id", FailureMechanismSectionHelper.GetFailureMechanismSectionGeometry(
assessmentSection.ReferenceLine, assemblyResult.SectionStart, assemblyResult.SectionEnd),
Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableCombinedSectionAssemblyFactoryTest.cs
===================================================================
diff -u -r6987efa7ae64f10c5c00802ca6b3ba0c08cd5ab7 -r8207feaf9b12bc87b924cde143f7af6a8eac0f0b
--- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableCombinedSectionAssemblyFactoryTest.cs (.../ExportableCombinedSectionAssemblyFactoryTest.cs) (revision 6987efa7ae64f10c5c00802ca6b3ba0c08cd5ab7)
+++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableCombinedSectionAssemblyFactoryTest.cs (.../ExportableCombinedSectionAssemblyFactoryTest.cs) (revision 8207feaf9b12bc87b924cde143f7af6a8eac0f0b)
@@ -32,6 +32,7 @@
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Integration.Data;
using Riskeer.Integration.Data.Assembly;
+using Riskeer.Integration.IO.Exceptions;
using Riskeer.Integration.IO.Factories;
using Riskeer.Integration.Util;
@@ -65,6 +66,31 @@
}
[Test]
+ [TestCase(FailureMechanismSectionAssemblyGroup.NoResult)]
+ [TestCase(FailureMechanismSectionAssemblyGroup.Dominant)]
+ public void CreateExportableCombinedSectionAssemblyCollection_WithInvalidAssemblyResults_ThrowsAssemblyFactoryException(
+ FailureMechanismSectionAssemblyGroup assemblyGroup)
+ {
+ // Setup
+ var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
+
+ var random = new Random(21);
+ CombinedFailureMechanismSectionAssemblyResult[] assemblyResults =
+ {
+ new CombinedFailureMechanismSectionAssemblyResult(random.NextDouble(), random.NextDouble(), assemblyGroup,
+ random.NextEnumValue(), random.NextEnumValue(), random.NextEnumValue(),
+ new CombinedFailureMechanismSectionAssemblyResult.ConstructionProperties())
+ };
+
+ // Call
+ void Call() => ExportableCombinedSectionAssemblyFactory.CreateExportableCombinedSectionAssemblyCollection(assemblyResults, assessmentSection);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("The assembly result is invalid and cannot be created.", exception.Message);
+ }
+
+ [Test]
[TestCase(true)]
[TestCase(false)]
public void CreateExportableCombinedSectionAssemblyCollection_WithAssemblyResults_ReturnsExportableCombinedSectionAssemblyCollection(bool hasAssemblyGroupResults)