Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResult.cs
===================================================================
diff -u -rcee2db52a72ec34d52c88a4ba6e199153e9e1252 -ra0a0015f5301e9169feeb2b0968484f4e0f19e5e
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResult.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResult.cs) (revision cee2db52a72ec34d52c88a4ba6e199153e9e1252)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResult.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResult.cs) (revision a0a0015f5301e9169feeb2b0968484f4e0f19e5e)
@@ -46,15 +46,14 @@
/// The generic failure mechanism code this result is assembled for.
/// The group of this assembly result.
public SerializableCombinedFailureMechanismSectionAssemblyResult(
- SerializableAssemblyMethod assemblyMethod,
- SerializableFailureMechanismType failureMechanismType,
- string code,
- SerializableFailureMechanismSectionAssemblyGroup assemblyGroup)
+ SerializableAssemblyMethod assemblyMethod, SerializableFailureMechanismType failureMechanismType,
+ string code, SerializableFailureMechanismSectionAssemblyGroup assemblyGroup)
: this()
{
AssemblyMethod = assemblyMethod;
FailureMechanismType = failureMechanismType;
GenericFailureMechanismCode = code;
+ SpecificFailureMechanismCode = code;
AssemblyGroup = assemblyGroup;
}
@@ -77,6 +76,12 @@
public string GenericFailureMechanismCode { get; set; }
///
+ /// Gets or sets the specific failure mechanism code of this assembly result.
+ ///
+ [XmlElement(AssemblyXmlIdentifiers.SpecificFailureMechanism)]
+ public string SpecificFailureMechanismCode { get; set; }
+
+ ///
/// Gets or sets the group of this assembly result.
///
[XmlElement(AssemblyXmlIdentifiers.FailureMechanismSectionAssemblyGroup)]
@@ -87,5 +92,25 @@
///
[XmlElement(AssemblyXmlIdentifiers.Status)]
public string Status { get; set; }
+
+ ///
+ /// Determines whether should be serialized.
+ ///
+ /// true if is ;
+ /// false otherwise.
+ public bool ShouldSerializeGenericFailureMechanismCode()
+ {
+ return FailureMechanismType == SerializableFailureMechanismType.Generic;
+ }
+
+ ///
+ /// Determines whether should be serialized.
+ ///
+ /// true if is ;
+ /// false otherwise.
+ public bool ShouldSerializeSpecificFailureMechanismCode()
+ {
+ return FailureMechanismType == SerializableFailureMechanismType.Specific;
+ }
}
}
\ No newline at end of file
Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResultTest.cs
===================================================================
diff -u -rcee2db52a72ec34d52c88a4ba6e199153e9e1252 -ra0a0015f5301e9169feeb2b0968484f4e0f19e5e
--- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResultTest.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResultTest.cs) (revision cee2db52a72ec34d52c88a4ba6e199153e9e1252)
+++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResultTest.cs (.../SerializableCombinedFailureMechanismSectionAssemblyResultTest.cs) (revision a0a0015f5301e9169feeb2b0968484f4e0f19e5e)
@@ -40,18 +40,19 @@
// Assert
Assert.AreEqual((SerializableAssemblyMethod) 0, assemblyResult.AssemblyMethod);
Assert.AreEqual((SerializableFailureMechanismType) 0, assemblyResult.FailureMechanismType);
- Assert.IsNull( assemblyResult.GenericFailureMechanismCode);
+ Assert.IsNull(assemblyResult.GenericFailureMechanismCode);
+ Assert.IsNull(assemblyResult.SpecificFailureMechanismCode);
Assert.AreEqual((SerializableFailureMechanismSectionAssemblyGroup) 0, assemblyResult.AssemblyGroup);
Assert.AreEqual("VOLLDG", assemblyResult.Status);
SerializableAttributeTestHelper.AssertXmlElementAttribute(
nameof(SerializableCombinedFailureMechanismSectionAssemblyResult.AssemblyMethod), "assemblagemethode");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
- nameof(SerializableCombinedFailureMechanismSectionAssemblyResult.AssemblyGroup), "duidingsklasse");
+ nameof(SerializableCombinedFailureMechanismSectionAssemblyResult.FailureMechanismType), "typeFaalmechanisme");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
nameof(SerializableCombinedFailureMechanismSectionAssemblyResult.GenericFailureMechanismCode), "generiekFaalmechanisme");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
- nameof(SerializableCombinedFailureMechanismSectionAssemblyResult.FailureMechanismType), "typeFaalmechanisme");
+ nameof(SerializableCombinedFailureMechanismSectionAssemblyResult.AssemblyGroup), "duidingsklasse");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
nameof(SerializableCombinedFailureMechanismSectionAssemblyResult.Status), "status");
}
@@ -74,8 +75,30 @@
Assert.AreEqual(assemblyMethod, assemblyResult.AssemblyMethod);
Assert.AreEqual(failureMechanismType, assemblyResult.FailureMechanismType);
Assert.AreEqual(code, assemblyResult.GenericFailureMechanismCode);
+ Assert.AreEqual(code, assemblyResult.SpecificFailureMechanismCode);
Assert.AreEqual(assemblyGroup, assemblyResult.AssemblyGroup);
Assert.AreEqual("VOLLDG", assemblyResult.Status);
}
+
+ [Test]
+ [TestCase(SerializableFailureMechanismType.Generic, true, false)]
+ [TestCase(SerializableFailureMechanismType.Specific, false, true)]
+ public void GivenSerializableFailureMechanismWithFailureMechanismType_WhenShouldSerializeProperties_ThenReturnsExpectedValues(
+ SerializableFailureMechanismType failureMechanismType, bool expectedShouldSerializeGeneric, bool expectedShouldSerializeSpecific)
+ {
+ // Given
+ var random = new Random(39);
+ var assemblyResult = new SerializableCombinedFailureMechanismSectionAssemblyResult(
+ random.NextEnumValue(), failureMechanismType, "code",
+ random.NextEnumValue());
+
+ // When
+ bool shouldSerializeGeneric = assemblyResult.ShouldSerializeGenericFailureMechanismCode();
+ bool shouldSerializeSpecific = assemblyResult.ShouldSerializeSpecificFailureMechanismCode();
+
+ // Then
+ Assert.AreEqual(expectedShouldSerializeGeneric, shouldSerializeGeneric);
+ Assert.AreEqual(expectedShouldSerializeSpecific, shouldSerializeSpecific);
+ }
}
}
\ No newline at end of file