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