Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableCombinedFailureMechanismSectionAssemblyResultCreator.cs
===================================================================
diff -u -re8210040e3962fda1daa0ec9d90ecfb10e351eb3 -r64bd60c5f92229044d3adf59d096a3b29f69ab4a
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableCombinedFailureMechanismSectionAssemblyResultCreator.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResultCreator.cs) (revision e8210040e3962fda1daa0ec9d90ecfb10e351eb3)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableCombinedFailureMechanismSectionAssemblyResultCreator.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResultCreator.cs) (revision 64bd60c5f92229044d3adf59d096a3b29f69ab4a)
@@ -20,8 +20,10 @@
// All rights reserved.
using System;
+using Ringtoets.AssemblyTool.Data;
using Ringtoets.AssemblyTool.IO.Model.DataTypes;
using Ringtoets.Integration.IO.Assembly;
+using Ringtoets.Integration.IO.Exceptions;
namespace Ringtoets.Integration.IO.Creators
{
@@ -38,6 +40,8 @@
/// to create a for.
/// A .
/// Thrown when is null.
+ /// Thrown when is invalid to create a
+ /// serializable counterpart for.
public static SerializableCombinedFailureMechanismSectionAssemblyResult Create(ExportableFailureMechanismCombinedSectionAssemblyResult sectionResult)
{
if (sectionResult == null)
@@ -46,6 +50,11 @@
}
ExportableSectionAssemblyResult sectionResultSectionAssemblyResult = sectionResult.SectionAssemblyResult;
+ if (sectionResultSectionAssemblyResult.AssemblyCategory == FailureMechanismSectionAssemblyCategoryGroup.None)
+ {
+ throw new AssemblyCreatorException("The assembly result is invalid and cannot be created.");
+ }
+
return new SerializableCombinedFailureMechanismSectionAssemblyResult(SerializableAssemblyMethodCreator.Create(sectionResultSectionAssemblyResult.AssemblyMethod),
SerializableFailureMechanismTypeCreator.Create(sectionResult.Code),
SerializableFailureMechanismSectionCategoryGroupCreator.Create(sectionResultSectionAssemblyResult.AssemblyCategory));
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableCombinedFailureMechanismSectionAssemblyResultCreatorTest.cs
===================================================================
diff -u -r7ad21c69dd74f12a4b17ff15217bf8c135cc06aa -r64bd60c5f92229044d3adf59d096a3b29f69ab4a
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableCombinedFailureMechanismSectionAssemblyResultCreatorTest.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResultCreatorTest.cs) (revision 7ad21c69dd74f12a4b17ff15217bf8c135cc06aa)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableCombinedFailureMechanismSectionAssemblyResultCreatorTest.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResultCreatorTest.cs) (revision 64bd60c5f92229044d3adf59d096a3b29f69ab4a)
@@ -26,6 +26,7 @@
using Ringtoets.AssemblyTool.IO.Model.DataTypes;
using Ringtoets.Integration.IO.Assembly;
using Ringtoets.Integration.IO.Creators;
+using Ringtoets.Integration.IO.Exceptions;
namespace Ringtoets.Integration.IO.Test.Creators
{
@@ -65,6 +66,23 @@
serializableResult.CategoryGroup);
}
+ [Test]
+ public void Create_WithSectionAssemblyResultNone_ThrowsAssemblyCreatorException()
+ {
+ // Setup
+ var random = new Random(21);
+ var sectionResult = new ExportableFailureMechanismCombinedSectionAssemblyResult(new ExportableSectionAssemblyResult(random.NextEnumValue(),
+ FailureMechanismSectionAssemblyCategoryGroup.None),
+ random.NextEnumValue());
+
+ // Call
+ TestDelegate call = () => SerializableCombinedFailureMechanismSectionAssemblyResultCreator.Create(sectionResult);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("The assembly result is invalid and cannot be created.", exception.Message);
+ }
+
private static ExportableSectionAssemblyResult CreateSectionAssemblyResult()
{
var random = new Random(21);