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