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