Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismCreator.cs
===================================================================
diff -u -r821ea9c9eada82e432462f9be0390dd5b45ffb29 -rb741ba716e73996ab805398ae44a1bb3cd675fc9
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismCreator.cs (.../AggregatedSerializableFailureMechanismCreator.cs) (revision 821ea9c9eada82e432462f9be0390dd5b45ffb29)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismCreator.cs (.../AggregatedSerializableFailureMechanismCreator.cs) (revision b741ba716e73996ab805398ae44a1bb3cd675fc9)
@@ -44,7 +44,7 @@
/// create an for.
/// An .
/// Thrown when any parameter is null.
- /// Thrown when the serializable assembly cannot be created.
+ /// Thrown when the inputs are invalid to create a serializable counterpart for.
/// Thrown when the
/// contains unsupported items in the failure mechanism section assembly results.
public static AggregatedSerializableFailureMechanism Create(IdentifierGenerator idGenerator,
@@ -92,7 +92,7 @@
/// create an for.
/// An .
/// Thrown when any parameter is null.
- /// Thrown when the serializable assembly cannot be created.
+ /// Thrown when the inputs are invalid to create a serializable counterpart for.
/// Thrown when the
/// contains unsupported items in the failure mechanism section assembly results.
public static AggregatedSerializableFailureMechanism Create(IdentifierGenerator idGenerator,
@@ -140,7 +140,7 @@
/// An aggregated failure mechanism section assembly result to
/// create an for.
/// An .
- /// Thrown when the assembly result cannot be created.
+ /// Thrown when the inputs are invalid to create a serializable counterpart for.
/// Thrown when an
/// cannot be created for .
private static AggregatedSerializableFailureMechanismSectionAssembly CreateFailureMechanismSectionAssembly(
Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableAssemblyCreator.cs
===================================================================
diff -u -r9c6a10855fb4ce6a5667226abc5a27308439c842 -rb741ba716e73996ab805398ae44a1bb3cd675fc9
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableAssemblyCreator.cs (.../SerializableAssemblyCreator.cs) (revision 9c6a10855fb4ce6a5667226abc5a27308439c842)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableAssemblyCreator.cs (.../SerializableAssemblyCreator.cs) (revision b741ba716e73996ab805398ae44a1bb3cd675fc9)
@@ -46,7 +46,8 @@
/// A .
/// Thrown when
/// is null.
- /// Thrown when the serializable assembly cannot be created.
+ /// Thrown when the is invalid
+ /// to create a serializable counterpart for.
public static SerializableAssembly Create(ExportableAssessmentSection assessmentSection)
{
if (assessmentSection == null)
Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismCreator.cs
===================================================================
diff -u -r3265c6b7b2cb65fd707b885d698bf106eb2a3307 -rb741ba716e73996ab805398ae44a1bb3cd675fc9
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismCreator.cs (.../SerializableFailureMechanismCreator.cs) (revision 3265c6b7b2cb65fd707b885d698bf106eb2a3307)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismCreator.cs (.../SerializableFailureMechanismCreator.cs) (revision b741ba716e73996ab805398ae44a1bb3cd675fc9)
@@ -22,6 +22,7 @@
using System;
using Ringtoets.AssemblyTool.IO.Model;
using Ringtoets.Integration.IO.Assembly;
+using Ringtoets.Integration.IO.Exceptions;
using Ringtoets.Integration.IO.Helpers;
using Ringtoets.Integration.IO.Properties;
@@ -42,6 +43,8 @@
/// without a probability assembly result to create a for.
/// A
/// Thrown when any parameter is null.
+ /// Thrown when is invalid to
+ /// create a serializable counterpart for.
public static SerializableFailureMechanism Create(IdentifierGenerator idGenerator,
SerializableTotalAssemblyResult serializableTotalAssembly,
ExportableFailureMechanism failureMechanism)
@@ -78,6 +81,8 @@
/// with a probability assembly result to create a for.
/// A .
/// Thrown when any parameter is null.
+ /// Thrown when is invalid to
+ /// create a serializable counterpart for.
public static SerializableFailureMechanism Create(IdentifierGenerator idGenerator,
SerializableTotalAssemblyResult serializableTotalAssembly,
ExportableFailureMechanism failureMechanism)
Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismResultCreator.cs
===================================================================
diff -u -re8210040e3962fda1daa0ec9d90ecfb10e351eb3 -rb741ba716e73996ab805398ae44a1bb3cd675fc9
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismResultCreator.cs (.../SerializableFailureMechanismResultCreator.cs) (revision e8210040e3962fda1daa0ec9d90ecfb10e351eb3)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismResultCreator.cs (.../SerializableFailureMechanismResultCreator.cs) (revision b741ba716e73996ab805398ae44a1bb3cd675fc9)
@@ -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
{
@@ -39,13 +41,16 @@
/// A .
/// Thrown when
/// is null.
+ /// Thrown when is invalid to create a serializable counterpart for.
public static SerializableFailureMechanismAssemblyResult Create(ExportableFailureMechanismAssemblyResult result)
{
if (result == null)
{
throw new ArgumentNullException(nameof(result));
}
+ ValidateAssemblyResult(result);
+
return new SerializableFailureMechanismAssemblyResult(SerializableAssemblyMethodCreator.Create(result.AssemblyMethod),
SerializableFailureMechanismCategoryGroupCreator.Create(result.AssemblyCategory));
}
@@ -59,16 +64,33 @@
/// A .
/// Thrown when
/// is null.
+ /// Thrown when is invalid to create a serializable counterpart for.
public static SerializableFailureMechanismAssemblyResult Create(ExportableFailureMechanismAssemblyResultWithProbability result)
{
if (result == null)
{
throw new ArgumentNullException(nameof(result));
}
+ ValidateAssemblyResult(result);
+
return new SerializableFailureMechanismAssemblyResult(SerializableAssemblyMethodCreator.Create(result.AssemblyMethod),
SerializableFailureMechanismCategoryGroupCreator.Create(result.AssemblyCategory),
result.Probability);
}
+
+ ///
+ /// Validates the to determine whether a serializable assembly result can be created.
+ ///
+ /// The to validate.
+ /// Thrown when is invalid
+ /// and a serializable assembly result cannot be created.
+ private static void ValidateAssemblyResult(ExportableFailureMechanismAssemblyResult result)
+ {
+ if (result.AssemblyCategory == FailureMechanismAssemblyCategoryGroup.None)
+ {
+ throw new AssemblyCreatorException(@"The assembly result is invalid and cannot be created.");
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismResultCreatorTest.cs
===================================================================
diff -u -r58cc931c9371c4aaed515fdef590cfc67b5303b6 -rb741ba716e73996ab805398ae44a1bb3cd675fc9
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismResultCreatorTest.cs (.../SerializableFailureMechanismResultCreatorTest.cs) (revision 58cc931c9371c4aaed515fdef590cfc67b5303b6)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismResultCreatorTest.cs (.../SerializableFailureMechanismResultCreatorTest.cs) (revision b741ba716e73996ab805398ae44a1bb3cd675fc9)
@@ -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;
using Ringtoets.Integration.IO.TestUtil;
namespace Ringtoets.Integration.IO.Test.Creators
@@ -45,12 +46,38 @@
}
[Test]
+ public void Create_WithFailureMechanismAssemblyResultNone_ThrowsAssemblyCreatorException()
+ {
+ // Setup
+ var random = new Random(21);
+ var result = new ExportableFailureMechanismAssemblyResult(random.NextEnumValue(),
+ FailureMechanismAssemblyCategoryGroup.None);
+
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismResultCreator.Create(result);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("The assembly result is invalid and cannot be created.", exception.Message);
+ }
+
+ [Test]
public void Create_WithFailureMechanismAssemblyResult_ReturnsSerializableFailureMechanismAssemblyResult()
{
// Setup
var random = new Random(21);
var result = new ExportableFailureMechanismAssemblyResult(random.NextEnumValue(),
- random.NextEnumValue());
+ random.NextEnumValue(new[]
+ {
+ FailureMechanismAssemblyCategoryGroup.NotApplicable,
+ FailureMechanismAssemblyCategoryGroup.It,
+ FailureMechanismAssemblyCategoryGroup.IIt,
+ FailureMechanismAssemblyCategoryGroup.IIIt,
+ FailureMechanismAssemblyCategoryGroup.IVt,
+ FailureMechanismAssemblyCategoryGroup.Vt,
+ FailureMechanismAssemblyCategoryGroup.VIt,
+ FailureMechanismAssemblyCategoryGroup.VIIt,
+ }));
// Call
SerializableFailureMechanismAssemblyResult serializableAssemblyResult = SerializableFailureMechanismResultCreator.Create(result);
@@ -74,12 +101,39 @@
}
[Test]
+ public void Create_WithFailureMechanismAssemblyResultWithProbabilityAndResultNone_ThrowsAssemblyCreatorException()
+ {
+ // Setup
+ var random = new Random(21);
+ var result = new ExportableFailureMechanismAssemblyResultWithProbability(random.NextEnumValue(),
+ FailureMechanismAssemblyCategoryGroup.None,
+ random.NextDouble());
+
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismResultCreator.Create(result);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("The assembly result is invalid and cannot be created.", exception.Message);
+ }
+
+ [Test]
public void Create_WithFailureMechanismAssemblyResultWithProbability_ReturnsSerializableFailureMechanismAssemblyResult()
{
// Setup
var random = new Random(21);
var result = new ExportableFailureMechanismAssemblyResultWithProbability(random.NextEnumValue(),
- random.NextEnumValue(),
+ random.NextEnumValue(new[]
+ {
+ FailureMechanismAssemblyCategoryGroup.NotApplicable,
+ FailureMechanismAssemblyCategoryGroup.It,
+ FailureMechanismAssemblyCategoryGroup.IIt,
+ FailureMechanismAssemblyCategoryGroup.IIIt,
+ FailureMechanismAssemblyCategoryGroup.IVt,
+ FailureMechanismAssemblyCategoryGroup.Vt,
+ FailureMechanismAssemblyCategoryGroup.VIt,
+ FailureMechanismAssemblyCategoryGroup.VIIt,
+ }),
random.NextDouble());
// Call