Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs
===================================================================
diff -u -r40f13c78443ab9b208cdd1e877198aa89c237a44 -rd08a296ffb28468d06fd83770e1cd2faeddeb5da
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs (.../AssemblyXmlIdentifiers.cs) (revision 40f13c78443ab9b208cdd1e877198aa89c237a44)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs (.../AssemblyXmlIdentifiers.cs) (revision d08a296ffb28468d06fd83770e1cd2faeddeb5da)
@@ -218,6 +218,11 @@
public const string GenericFailureMechanism = "generiekFaalmechanisme";
///
+ /// Identifier for a specific failure mechanism element.
+ ///
+ public const string SpecificFailureMechanism = "specifiekFaalmechanisme";
+
+ ///
/// Identifier for a feature member element.
///
public const string FeatureMember = "featureMember";
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs
===================================================================
diff -u -rcee2db52a72ec34d52c88a4ba6e199153e9e1252 -rd08a296ffb28468d06fd83770e1cd2faeddeb5da
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs (.../SerializableFailureMechanism.cs) (revision cee2db52a72ec34d52c88a4ba6e199153e9e1252)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs (.../SerializableFailureMechanism.cs) (revision d08a296ffb28468d06fd83770e1cd2faeddeb5da)
@@ -72,6 +72,7 @@
FailureMechanismType = failureMechanismType;
TotalAssemblyResultId = totalAssemblyResult.Id;
GenericFailureMechanismCode = code;
+ SpecificFailureMechanismCode = code;
FailureMechanismAssemblyResult = failureMechanismAssemblyResult;
}
@@ -100,9 +101,35 @@
public string GenericFailureMechanismCode { get; set; }
///
+ /// Gets or sets the specific failure mechanism code.
+ ///
+ [XmlElement(AssemblyXmlIdentifiers.SpecificFailureMechanism)]
+ public string SpecificFailureMechanismCode { get; set; }
+
+ ///
/// Gets or sets the total failure mechanism assembly result.
///
[XmlElement(AssemblyXmlIdentifiers.FailureMechanismAssemblyResult)]
public SerializableFailureMechanismAssemblyResult FailureMechanismAssemblyResult { 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/AssemblyXmlIdentifiersTest.cs
===================================================================
diff -u -rd2744f91a62257d0e7854ed5107e7efca114465c -rd08a296ffb28468d06fd83770e1cd2faeddeb5da
--- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/AssemblyXmlIdentifiersTest.cs (.../AssemblyXmlIdentifiersTest.cs) (revision d2744f91a62257d0e7854ed5107e7efca114465c)
+++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/AssemblyXmlIdentifiersTest.cs (.../AssemblyXmlIdentifiersTest.cs) (revision d08a296ffb28468d06fd83770e1cd2faeddeb5da)
@@ -71,6 +71,7 @@
Assert.AreEqual("typeWaterkeringsectie", AssemblyXmlIdentifiers.FailureMechanismSectionType);
Assert.AreEqual("typeFaalmechanisme", AssemblyXmlIdentifiers.FailureMechanismType);
Assert.AreEqual("generiekFaalmechanisme", AssemblyXmlIdentifiers.GenericFailureMechanism);
+ Assert.AreEqual("specifiekFaalmechanisme", AssemblyXmlIdentifiers.SpecificFailureMechanism);
Assert.AreEqual("featureMember", AssemblyXmlIdentifiers.FeatureMember);
Assert.AreEqual("posList", AssemblyXmlIdentifiers.Geometry);
Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/SerializableFailureMechanismTest.cs
===================================================================
diff -u -rcee2db52a72ec34d52c88a4ba6e199153e9e1252 -rd08a296ffb28468d06fd83770e1cd2faeddeb5da
--- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/SerializableFailureMechanismTest.cs (.../SerializableFailureMechanismTest.cs) (revision cee2db52a72ec34d52c88a4ba6e199153e9e1252)
+++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/SerializableFailureMechanismTest.cs (.../SerializableFailureMechanismTest.cs) (revision d08a296ffb28468d06fd83770e1cd2faeddeb5da)
@@ -42,9 +42,10 @@
Assert.IsInstanceOf(failureMechanism);
Assert.IsNull(failureMechanism.Id);
Assert.IsNull(failureMechanism.TotalAssemblyResultId);
- Assert.IsNull(failureMechanism.FailureMechanismAssemblyResult);
- Assert.IsNull(failureMechanism.GenericFailureMechanismCode);
Assert.AreEqual((SerializableFailureMechanismType) 0, failureMechanism.FailureMechanismType);
+ Assert.IsNull(failureMechanism.GenericFailureMechanismCode);
+ Assert.IsNull(failureMechanism.SpecificFailureMechanismCode);
+ Assert.IsNull(failureMechanism.FailureMechanismAssemblyResult);
SerializableAttributeTestHelper.AssertXmlTypeAttribute(typeof(SerializableFailureMechanism), "Faalmechanisme");
@@ -54,9 +55,11 @@
nameof(SerializableFailureMechanism.TotalAssemblyResultId), "VeiligheidsoordeelIDRef");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
+ nameof(SerializableFailureMechanism.FailureMechanismType), "typeFaalmechanisme");
+ SerializableAttributeTestHelper.AssertXmlElementAttribute(
nameof(SerializableFailureMechanism.GenericFailureMechanismCode), "generiekFaalmechanisme");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
- nameof(SerializableFailureMechanism.FailureMechanismType), "typeFaalmechanisme");
+ nameof(SerializableFailureMechanism.SpecificFailureMechanismCode), "specifiekFaalmechanisme");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
nameof(SerializableFailureMechanism.FailureMechanismAssemblyResult), "analyseFaalmechanisme");
}
@@ -131,10 +134,31 @@
// Assert
Assert.AreEqual(id, failureMechanism.Id);
+ Assert.AreEqual(totalResultId, failureMechanism.TotalAssemblyResultId);
Assert.AreEqual(failureMechanismType, failureMechanism.FailureMechanismType);
Assert.AreEqual(code, failureMechanism.GenericFailureMechanismCode);
- Assert.AreEqual(totalResultId, failureMechanism.TotalAssemblyResultId);
+ Assert.AreEqual(code, failureMechanism.SpecificFailureMechanismCode);
Assert.AreSame(assemblyResult, failureMechanism.FailureMechanismAssemblyResult);
}
+
+ [Test]
+ [TestCase(SerializableFailureMechanismType.Generic, true, false)]
+ [TestCase(SerializableFailureMechanismType.Specific, false, true)]
+ public void GivenSerializableFailureMechanismWithFailureMechanismType_WhenShouldSerializeProperties_ThenReturnsExpectedValues(
+ SerializableFailureMechanismType failureMechanismType, bool expectedShouldSerializeGeneric, bool expectedShouldSerializeSpecific)
+ {
+ // Given
+ var failureMechanism = new SerializableFailureMechanism(
+ "id", failureMechanismType, "code", new SerializableTotalAssemblyResult(),
+ new SerializableFailureMechanismAssemblyResult());
+
+ // When
+ bool shouldSerializeGeneric = failureMechanism.ShouldSerializeGenericFailureMechanismCode();
+ bool shouldSerializeSpecific = failureMechanism.ShouldSerializeSpecificFailureMechanismCode();
+
+ // Then
+ Assert.AreEqual(expectedShouldSerializeGeneric, shouldSerializeGeneric);
+ Assert.AreEqual(expectedShouldSerializeSpecific, shouldSerializeSpecific);
+ }
}
}
\ No newline at end of file