Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyCreator.cs
===================================================================
diff -u -ref94545e83d471d2a0a142c649414b507ea10a81 -rca1120a0858a3b0d1ce5724fa00724afa4e2aad2
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyCreator.cs (.../SerializableFailureMechanismSectionAssemblyCreator.cs) (revision ef94545e83d471d2a0a142c649414b507ea10a81)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyCreator.cs (.../SerializableFailureMechanismSectionAssemblyCreator.cs) (revision ca1120a0858a3b0d1ce5724fa00724afa4e2aad2)
@@ -76,10 +76,56 @@
serializableCollection,
sectionResult.FailureMechanismSection),
CreateAssemblySectionResults(sectionResult),
- SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.CombinedAssessment,
+ 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,
+ ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability 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[]
@@ -88,6 +134,17 @@
SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.DetailedAssessment, sectionResult.DetailedAssembly),
SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.TailorMadeAssessment, sectionResult.TailorMadeAssembly)
};
- }
+ }
+
+ private static SerializableFailureMechanismSectionAssemblyResult[] CreateAssemblySectionResults(
+ ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability sectionResult)
+ {
+ return new[]
+ {
+ SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.SimpleAssessment, sectionResult.SimpleAssembly),
+ SerializableFailureMechanismSectionAssemblyResultCreator.Create(SerializableAssessmentType.DetailedAssessment, sectionResult.DetailedAssembly),
+ 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 -ref94545e83d471d2a0a142c649414b507ea10a81 -rca1120a0858a3b0d1ce5724fa00724afa4e2aad2
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyCreatorTest.cs (.../SerializableFailureMechanismSectionAssemblyCreatorTest.cs) (revision ef94545e83d471d2a0a142c649414b507ea10a81)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyCreatorTest.cs (.../SerializableFailureMechanismSectionAssemblyCreatorTest.cs) (revision ca1120a0858a3b0d1ce5724fa00724afa4e2aad2)
@@ -40,15 +40,15 @@
public void CreateWithoutProbability_IdGeneratorNull_ThrowsArgumentNullException()
{
// Call
- TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(null,
- new SerializableFailureMechanismSectionCollection(),
- new SerializableFailureMechanism(),
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(null,
+ new SerializableFailureMechanismSectionCollection(),
+ new SerializableFailureMechanism(),
new ExportableAggregatedFailureMechanismSectionAssemblyResult(
ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
CreateSectionAssemblyResult(10),
CreateSectionAssemblyResult(11),
CreateSectionAssemblyResult(12),
- CreateSectionAssemblyResult(13)));
+ CreateSectionAssemblyResult(13)));
// Assert
var exception = Assert.Throws(call);
@@ -59,7 +59,7 @@
public void CreateWithoutProbability_SerializableFailureMechanismSectionCollectionNull_ThrowsArgumentNullException()
{
// Call
- TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
null,
new SerializableFailureMechanism(),
new ExportableAggregatedFailureMechanismSectionAssemblyResult(
@@ -79,7 +79,7 @@
{
// Call
TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
- new SerializableFailureMechanismSectionCollection(),
+ new SerializableFailureMechanismSectionCollection(),
null,
new ExportableAggregatedFailureMechanismSectionAssemblyResult(
ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
@@ -99,8 +99,8 @@
// Call
TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
new SerializableFailureMechanismSectionCollection(),
- new SerializableFailureMechanism(),
- null);
+ new SerializableFailureMechanism(),
+ (ExportableAggregatedFailureMechanismSectionAssemblyResult) null);
// Assert
var exception = Assert.Throws(call);
@@ -156,6 +156,126 @@
serializableSectionAssembly.CombinedSectionResult);
}
+ [Test]
+ public void CreateWithProbability_IdGeneratorNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(null,
+ new SerializableFailureMechanismSectionCollection(),
+ new SerializableFailureMechanism(),
+ new ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResultWithProbability(10),
+ CreateSectionAssemblyResultWithProbability(11),
+ CreateSectionAssemblyResultWithProbability(12),
+ CreateSectionAssemblyResultWithProbability(13)));
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("idGenerator", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithProbability_SerializableFailureMechanismSectionCollectionNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
+ null,
+ new SerializableFailureMechanism(),
+ new ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResultWithProbability(10),
+ CreateSectionAssemblyResultWithProbability(11),
+ CreateSectionAssemblyResultWithProbability(12),
+ CreateSectionAssemblyResultWithProbability(13)));
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("serializableCollection", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithProbability_SerializableFailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
+ new SerializableFailureMechanismSectionCollection(),
+ null,
+ new ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResultWithProbability(10),
+ CreateSectionAssemblyResultWithProbability(11),
+ CreateSectionAssemblyResultWithProbability(12),
+ CreateSectionAssemblyResultWithProbability(13)));
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("serializableFailureMechanism", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithProbability_SectionResultNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => SerializableFailureMechanismSectionAssemblyCreator.Create(new UniqueIdentifierGenerator(),
+ new SerializableFailureMechanismSectionCollection(),
+ new SerializableFailureMechanism(),
+ (ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability) null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("sectionResult", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateWithProbability_WithValidArguments_ReturnsSerializableFailureMechanismSectionAssembly()
+ {
+ // Setup
+ var idGenerator = new UniqueIdentifierGenerator();
+ var sectionResult = new ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability(
+ ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(),
+ CreateSectionAssemblyResultWithProbability(10),
+ CreateSectionAssemblyResultWithProbability(11),
+ CreateSectionAssemblyResultWithProbability(12),
+ CreateSectionAssemblyResultWithProbability(13));
+
+ 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(3, serializedSectionResults.Length);
+ AssertAssemblyResult(sectionResult.SimpleAssembly,
+ SerializableAssessmentType.SimpleAssessment,
+ serializedSectionResults[0]);
+ AssertAssemblyResult(sectionResult.DetailedAssembly,
+ SerializableAssessmentType.DetailedAssessment,
+ serializedSectionResults[1]);
+ AssertAssemblyResult(sectionResult.TailorMadeAssembly,
+ SerializableAssessmentType.TailorMadeAssessment,
+ serializedSectionResults[2]);
+ AssertAssemblyResult(sectionResult.CombinedAssembly,
+ SerializableAssessmentType.CombinedAssessment,
+ serializableSectionAssembly.CombinedSectionResult);
+ }
+
private static void AssertAssemblyResult(ExportableSectionAssemblyResult expectedResult,
SerializableAssessmentType expectedAssessmentType,
SerializableFailureMechanismSectionAssemblyResult actualResult)
@@ -168,6 +288,18 @@
Assert.IsNull(actualResult.Probability);
}
+ private static void AssertAssemblyResult(ExportableSectionAssemblyResultWithProbability expectedResult,
+ SerializableAssessmentType expectedAssessmentType,
+ SerializableFailureMechanismSectionAssemblyResult actualResult)
+ {
+ Assert.AreEqual(SerializableFailureMechanismSectionCategoryGroupCreator.Create(expectedResult.AssemblyCategory),
+ actualResult.CategoryGroup);
+ Assert.AreEqual(SerializableAssemblyMethodCreator.Create(expectedResult.AssemblyMethod),
+ actualResult.AssemblyMethod);
+ Assert.AreEqual(expectedAssessmentType, actualResult.AssessmentType);
+ Assert.AreEqual(expectedResult.Probability, actualResult.Probability);
+ }
+
private static ExportableSectionAssemblyResult CreateSectionAssemblyResult(int seed)
{
var random = new Random(seed);