Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResult.cs
===================================================================
diff -u -ra77ce8324ad774ff960b1292d02a51a867869d7a -r4b1149de407862f37e58b78bcf8409602ec3031f
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResult.cs (.../SerializableFailureMechanismSectionAssemblyResult.cs) (revision a77ce8324ad774ff960b1292d02a51a867869d7a)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResult.cs (.../SerializableFailureMechanismSectionAssemblyResult.cs) (revision 4b1149de407862f37e58b78bcf8409602ec3031f)
@@ -43,7 +43,7 @@
/// The probability of this assembly result.
public SerializableFailureMechanismSectionAssemblyResult(SerializableAssemblyMethod assemblyMethod,
SerializableAssessmentType assessmentType,
- SerializableFailureMechanismSectionCategoryGroup categoryGroup,
+ SerializableFailureMechanismSectionCategoryGroup? categoryGroup = null,
double? probability = null) : this()
{
CategoryGroup = categoryGroup;
@@ -62,7 +62,7 @@
/// Gets or sets the category group of this assembly result.
///
[XmlElement(AssemblyXmlIdentifiers.FailureMechanismSectionCategoryGroup)]
- public SerializableFailureMechanismSectionCategoryGroup CategoryGroup { get; set; }
+ public SerializableFailureMechanismSectionCategoryGroup? CategoryGroup { get; set; }
///
/// Gets or sets the probability of this assembly result.
@@ -84,5 +84,14 @@
{
return Probability.HasValue;
}
+
+ ///
+ /// Determines whether should be serialized.
+ ///
+ /// true if should be serialized, false otherwise.
+ public bool ShouldSerializeCategoryGroup()
+ {
+ return CategoryGroup.HasValue;
+ }
}
}
\ No newline at end of file
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResultTest.cs
===================================================================
diff -u -rd3b53b68914f5cead6eaf7b008168b29b2bd5754 -r4b1149de407862f37e58b78bcf8409602ec3031f
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResultTest.cs (.../SerializableFailureMechanismSectionAssemblyResultTest.cs) (revision d3b53b68914f5cead6eaf7b008168b29b2bd5754)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResultTest.cs (.../SerializableFailureMechanismSectionAssemblyResultTest.cs) (revision 4b1149de407862f37e58b78bcf8409602ec3031f)
@@ -40,7 +40,7 @@
// Assert
Assert.AreEqual((SerializableAssemblyMethod) 0, assemblyResult.AssemblyMethod);
Assert.AreEqual((SerializableAssessmentType) 0, assemblyResult.AssessmentType);
- Assert.AreEqual((SerializableFailureMechanismSectionCategoryGroup) 0, assemblyResult.CategoryGroup);
+ Assert.IsNull(assemblyResult.CategoryGroup);
Assert.IsNull(assemblyResult.Probability);
SerializableAttributeTestHelper.AssertXmlElementAttribute(
@@ -93,5 +93,27 @@
// Assert
Assert.AreEqual(expectedShouldSerialize, shouldSerialize);
}
+
+ [Test]
+ [TestCase(SerializableFailureMechanismSectionCategoryGroup.IIIv, true)]
+ [TestCase(null, false)]
+ public void ShouldSerializeCategoryGroup_WithSectionCategoryGroupValues_ReturnsExpectedValue(SerializableFailureMechanismSectionCategoryGroup? categoryGroup,
+ bool expectedShouldSerialize)
+ {
+ // Setup
+ var random = new Random(39);
+ var assemblyResult = new SerializableFailureMechanismSectionAssemblyResult(
+ random.NextEnumValue(),
+ random.NextEnumValue(),
+ categoryGroup,
+ random.NextDouble());
+
+ // Call
+ bool shouldSerialize = assemblyResult.ShouldSerializeCategoryGroup();
+
+ // Assert
+ Assert.AreEqual(expectedShouldSerialize, shouldSerialize);
+
+ }
}
}
\ No newline at end of file