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);