Index: Riskeer/Storage/src/Riskeer.Storage.Core/Create/Piping/Probabilistic/ProbabilisticPipingOutputCreateExtensions.cs
===================================================================
diff -u -r82f80e5e3c3f49f7a597dc7c345c9b13b83f0cab -r393941548b62a4524b8d47c8cf3e7aa6dfaacec4
--- Riskeer/Storage/src/Riskeer.Storage.Core/Create/Piping/Probabilistic/ProbabilisticPipingOutputCreateExtensions.cs (.../ProbabilisticPipingOutputCreateExtensions.cs) (revision 82f80e5e3c3f49f7a597dc7c345c9b13b83f0cab)
+++ Riskeer/Storage/src/Riskeer.Storage.Core/Create/Piping/Probabilistic/ProbabilisticPipingOutputCreateExtensions.cs (.../ProbabilisticPipingOutputCreateExtensions.cs) (revision 393941548b62a4524b8d47c8cf3e7aa6dfaacec4)
@@ -19,7 +19,9 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using Riskeer.Piping.Data.Probabilistic;
+using Riskeer.Storage.Core.Create.IllustrationPoints;
using Riskeer.Storage.Core.DbContext;
namespace Riskeer.Storage.Core.Create.Piping.Probabilistic
@@ -30,6 +32,29 @@
///
internal static class ProbabilisticPipingOutputCreateExtensions
{
-
+ ///
+ /// Creates a based on the information
+ /// of the .
+ ///
+ /// The calculation output for piping failure mechanism to
+ /// create a database entity for.
+ /// A new .
+ /// Thrown when
+ /// is null.
+ public static ProbabilisticPipingCalculationOutputEntity Create(this ProbabilisticPipingOutput output)
+ {
+ if (output == null)
+ {
+ throw new ArgumentNullException(nameof(output));
+ }
+
+ return new ProbabilisticPipingCalculationOutputEntity
+ {
+ ProfileSpecificReliability = output.ProfileSpecificOutput.Reliability.ToNaNAsNull(),
+ SectionSpecificReliability = output.SectionSpecificOutput.Reliability.ToNaNAsNull(),
+ GeneralResultFaultTreeIllustrationPointEntity = output.ProfileSpecificOutput.GeneralResult?.CreateGeneralResultFaultTreeIllustrationPointEntity(),
+ GeneralResultFaultTreeIllustrationPointEntity1 = output.SectionSpecificOutput.GeneralResult?.CreateGeneralResultFaultTreeIllustrationPointEntity()
+ };
+ }
}
}
\ No newline at end of file
Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/Piping/Probabilistic/ProbabilisticPipingOutputCreateExtensionsTest.cs
===================================================================
diff -u -r82f80e5e3c3f49f7a597dc7c345c9b13b83f0cab -r393941548b62a4524b8d47c8cf3e7aa6dfaacec4
--- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/Piping/Probabilistic/ProbabilisticPipingOutputCreateExtensionsTest.cs (.../ProbabilisticPipingOutputCreateExtensionsTest.cs) (revision 82f80e5e3c3f49f7a597dc7c345c9b13b83f0cab)
+++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/Piping/Probabilistic/ProbabilisticPipingOutputCreateExtensionsTest.cs (.../ProbabilisticPipingOutputCreateExtensionsTest.cs) (revision 393941548b62a4524b8d47c8cf3e7aa6dfaacec4)
@@ -19,13 +19,82 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using NUnit.Framework;
+using Riskeer.Piping.Data.Probabilistic;
+using Riskeer.Piping.Data.TestUtil;
+using Riskeer.Storage.Core.Create.Piping.Probabilistic;
+using Riskeer.Storage.Core.DbContext;
+using Riskeer.Storage.Core.TestUtil.IllustrationPoints;
namespace Riskeer.Storage.Core.Test.Create.Piping.Probabilistic
{
[TestFixture]
public class ProbabilisticPipingOutputCreateExtensionsTest
{
-
+ [Test]
+ public void Create_OutputNull_ThrowsArgumentNullException()
+ {
+ // Call
+ void Call() => ((ProbabilisticPipingOutput) null).Create();
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("output", exception.ParamName);
+ }
+
+ [Test]
+ public void Create_CalculationWithOutput_ReturnEntityWithOutput()
+ {
+ // Setup
+ var output = new ProbabilisticPipingOutput(
+ PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(null),
+ PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(null));
+
+ // Call
+ ProbabilisticPipingCalculationOutputEntity entity = output.Create();
+
+ // Assert
+ Assert.AreEqual(output.ProfileSpecificOutput.Reliability, entity.ProfileSpecificReliability);
+ Assert.AreEqual(output.SectionSpecificOutput.Reliability, entity.SectionSpecificReliability);
+ Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity);
+ Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity1);
+ }
+
+ [Test]
+ public void Create_CalculationWithNaNOutput_ReturnEntityWithNullOutput()
+ {
+ // Setup
+ var output = new ProbabilisticPipingOutput(
+ new PartialProbabilisticPipingOutput(double.NaN, null),
+ new PartialProbabilisticPipingOutput(double.NaN, null));
+
+ // Call
+ ProbabilisticPipingCalculationOutputEntity entity = output.Create();
+
+ // Assert
+ Assert.IsNull(entity.ProfileSpecificReliability);
+ Assert.IsNull(entity.SectionSpecificReliability);
+ Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity);
+ Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity1);
+ }
+
+ [Test]
+ public void Create_CalculationWithOutputAndGeneralResult_ReturnEntityWithOutputAndGeneralResult()
+ {
+ // Setup
+ var output = new ProbabilisticPipingOutput(
+ PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(),
+ PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput());
+
+ // Call
+ ProbabilisticPipingCalculationOutputEntity entity = output.Create();
+
+ // Assert
+ Assert.AreEqual(output.ProfileSpecificOutput.Reliability, entity.ProfileSpecificReliability);
+ Assert.AreEqual(output.SectionSpecificOutput.Reliability, entity.SectionSpecificReliability);
+ GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues(output.ProfileSpecificOutput.GeneralResult, entity.GeneralResultFaultTreeIllustrationPointEntity);
+ GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues(output.SectionSpecificOutput.GeneralResult, entity.GeneralResultFaultTreeIllustrationPointEntity1);
+ }
}
}
\ No newline at end of file