Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyCreator.cs
===================================================================
diff -u -rca1120a0858a3b0d1ce5724fa00724afa4e2aad2 -rd39047c8e7392c4d7d33dc1fb23f95e812ed8880
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyCreator.cs (.../SerializableFailureMechanismSectionAssemblyCreator.cs) (revision ca1120a0858a3b0d1ce5724fa00724afa4e2aad2)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyCreator.cs (.../SerializableFailureMechanismSectionAssemblyCreator.cs) (revision d39047c8e7392c4d7d33dc1fb23f95e812ed8880)
@@ -91,9 +91,9 @@
/// for.
/// A .
/// Thrown when any parameter is null.
- public static SerializableFailureMechanismSectionAssembly Create(UniqueIdentifierGenerator idGenerator,
+ public static SerializableFailureMechanismSectionAssembly Create(UniqueIdentifierGenerator idGenerator,
SerializableFailureMechanismSectionCollection serializableCollection,
- SerializableFailureMechanism serializableFailureMechanism,
+ SerializableFailureMechanism serializableFailureMechanism,
ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability sectionResult)
{
if (idGenerator == null)
@@ -117,15 +117,61 @@
}
return new SerializableFailureMechanismSectionAssembly(idGenerator.GetNewId(Resources.SerializableFailureMechanismSectionAssembly_IdPrefix),
- serializableFailureMechanism,
- SerializableFailureMechanismSectionCreator.Create(idGenerator,
- serializableCollection,
- sectionResult.FailureMechanismSection),
- CreateAssemblySectionResults(sectionResult),
- SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.CombinedAssessment,
- sectionResult.CombinedAssembly));
+ serializableFailureMechanism,
+ SerializableFailureMechanismSectionCreator.Create(idGenerator,
+ serializableCollection,
+ sectionResult.FailureMechanismSection),
+ CreateAssemblySectionResults(sectionResult),
+ SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.CombinedAssessment,
+ sectionResult.CombinedAssembly));
}
+ ///
+ /// Creates an instance of
+ /// based on its input parameters.
+ ///
+ /// The id generator to generate an id for .
+ /// The the result belongs to.
+ /// The the result belongs to.
+ /// The to create a
+ /// for.
+ /// A .
+ /// Thrown when any parameter is null.
+ public static SerializableFailureMechanismSectionAssembly Create(UniqueIdentifierGenerator idGenerator,
+ SerializableFailureMechanismSectionCollection serializableCollection,
+ SerializableFailureMechanism serializableFailureMechanism,
+ ExportableAggregatedFailureMechanismSectionAssemblyResultWithoutDetailedAssembly sectionResult)
+ {
+ if (idGenerator == null)
+ {
+ throw new ArgumentNullException(nameof(idGenerator));
+ }
+
+ if (serializableCollection == null)
+ {
+ throw new ArgumentNullException(nameof(serializableCollection));
+ }
+
+ if (serializableFailureMechanism == null)
+ {
+ throw new ArgumentNullException(nameof(serializableFailureMechanism));
+ }
+
+ if (sectionResult == null)
+ {
+ throw new ArgumentNullException(nameof(sectionResult));
+ }
+
+ return new SerializableFailureMechanismSectionAssembly(idGenerator.GetNewId(Resources.SerializableFailureMechanismSectionAssembly_IdPrefix),
+ serializableFailureMechanism,
+ SerializableFailureMechanismSectionCreator.Create(idGenerator,
+ serializableCollection,
+ sectionResult.FailureMechanismSection),
+ CreateAssemblySectionResults(sectionResult),
+ SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.CombinedAssessment,
+ sectionResult.CombinedAssembly));
+ }
+
private static SerializableFailureMechanismSectionAssemblyResult[] CreateAssemblySectionResults(ExportableAggregatedFailureMechanismSectionAssemblyResult sectionResult)
{
return new[]
@@ -146,5 +192,15 @@
SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.TailorMadeAssessment, sectionResult.TailorMadeAssembly)
};
}
+
+ private static SerializableFailureMechanismSectionAssemblyResult[] CreateAssemblySectionResults(
+ ExportableAggregatedFailureMechanismSectionAssemblyResultWithoutDetailedAssembly sectionResult)
+ {
+ return new[]
+ {
+ SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.SimpleAssessment, sectionResult.SimpleAssembly),
+ SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.TailorMadeAssessment, sectionResult.TailorMadeAssembly)
+ };
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyCreatorTest.cs
===================================================================
diff -u -rca1120a0858a3b0d1ce5724fa00724afa4e2aad2 -rd39047c8e7392c4d7d33dc1fb23f95e812ed8880
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyCreatorTest.cs (.../SerializableFailureMechanismSectionAssemblyCreatorTest.cs) (revision ca1120a0858a3b0d1ce5724fa00724afa4e2aad2)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyCreatorTest.cs (.../SerializableFailureMechanismSectionAssemblyCreatorTest.cs) (revision d39047c8e7392c4d7d33dc1fb23f95e812ed8880)
@@ -276,6 +276,119 @@
serializableSectionAssembly.CombinedSectionResult);
}
+ [Test]
+ public void CreateWithoutDetailedAssembly_IdGeneratorNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(null,
+ new SerializableFailureMechanismSectionCollection(),
+ new SerializableFailureMechanism(),
+ new ExportableAggregatedFailureMechanismSectionAssemblyResultWithoutDetailedAssembly(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResultWithProbability(10),
+ CreateSectionAssemblyResultWithProbability(11),
+ CreateSectionAssemblyResultWithProbability(12)));
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("idGenerator", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithoutDetailedAssembly_SerializableFailureMechanismSectionCollectionNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
+ null,
+ new SerializableFailureMechanism(),
+ new ExportableAggregatedFailureMechanismSectionAssemblyResultWithoutDetailedAssembly(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResultWithProbability(10),
+ CreateSectionAssemblyResultWithProbability(11),
+ CreateSectionAssemblyResultWithProbability(12)));
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("serializableCollection", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithoutDetailedAssembly_SerializableFailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
+ new SerializableFailureMechanismSectionCollection(),
+ null,
+ new ExportableAggregatedFailureMechanismSectionAssemblyResultWithoutDetailedAssembly(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResultWithProbability(10),
+ CreateSectionAssemblyResultWithProbability(11),
+ CreateSectionAssemblyResultWithProbability(12)));
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("serializableFailureMechanism", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithoutDetailedAssembly_SectionResultNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
+ new SerializableFailureMechanismSectionCollection(),
+ new SerializableFailureMechanism(),
+ (ExportableAggregatedFailureMechanismSectionAssemblyResultWithoutDetailedAssembly)null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("sectionResult", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithoutDetailedAssembly_WithValidArguments_ReturnsSerializableFailureMechanismSectionAssembly()
+ {
+ // Setup
+ var idGenerator = new UniqueIdentifierGenerator();
+ var sectionResult = new ExportableAggregatedFailureMechanismSectionAssemblyResultWithoutDetailedAssembly(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResult(10),
+ CreateSectionAssemblyResult(11),
+ CreateSectionAssemblyResult(12));
+
+ var random = new Random(21);
+ const string serializableFailureMechanismId = "FailureMechanismId";
+ var serializableFailureMechanism = new SerializableFailureMechanism(serializableFailureMechanismId,
+ new SerializableTotalAssemblyResult(),
+ random.NextEnumValue(),
+ random.NextEnumValue(),
+ new SerializableFailureMechanismAssemblyResult());
+
+ const string serializableSectionCollectionId = "CollectionId";
+ var serializableCollection = new SerializableFailureMechanismSectionCollection(serializableSectionCollectionId,
+ serializableFailureMechanism);
+
+ // Call
+ SerializableFailureMechanismSectionAssembly serializableSectionAssembly =
+ SerializableFailureMechanismSectionAssemblyCreator.Create(idGenerator, serializableCollection, serializableFailureMechanism, sectionResult);
+
+ // Assert
+ Assert.AreEqual("T.0", serializableSectionAssembly.Id);
+ Assert.AreEqual(serializableFailureMechanism.Id, serializableSectionAssembly.FailureMechanismId);
+ Assert.AreEqual("Wks.1", serializableSectionAssembly.FailureMechanismSectionId);
+
+ SerializableFailureMechanismSectionAssemblyResult[] serializedSectionResults = serializableSectionAssembly.SectionResults;
+ Assert.AreEqual(2, serializedSectionResults.Length);
+ AssertAssemblyResult(sectionResult.SimpleAssembly,
+ SerializableAssessmentType.SimpleAssessment,
+ serializedSectionResults[0]);
+ AssertAssemblyResult(sectionResult.TailorMadeAssembly,
+ SerializableAssessmentType.TailorMadeAssessment,
+ serializedSectionResults[1]);
+ AssertAssemblyResult(sectionResult.CombinedAssembly,
+ SerializableAssessmentType.CombinedAssessment,
+ serializableSectionAssembly.CombinedSectionResult);
+ }
+
private static void AssertAssemblyResult(ExportableSectionAssemblyResult expectedResult,
SerializableAssessmentType expectedAssessmentType,
SerializableFailureMechanismSectionAssemblyResult actualResult)