Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HydraulicBoundaryLocationOutputCreateExtensions.cs =================================================================== diff -u -rb3c727f0765a7658ebdef636b20fcc78abc11ed1 -r41644e20d80f5793adb5e9da8d8e1a359887eb00 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HydraulicBoundaryLocationOutputCreateExtensions.cs (.../HydraulicBoundaryLocationOutputCreateExtensions.cs) (revision b3c727f0765a7658ebdef636b20fcc78abc11ed1) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HydraulicBoundaryLocationOutputCreateExtensions.cs (.../HydraulicBoundaryLocationOutputCreateExtensions.cs) (revision 41644e20d80f5793adb5e9da8d8e1a359887eb00) @@ -32,11 +32,47 @@ internal static class HydraulicBoundaryLocationOutputCreateExtensions { /// + /// Creates a based on the information of the . + /// + /// The output to create a database entity for. + /// A new . + /// Thrown when is null. + internal static HydraulicLocationOutputEntity CreateHydraulicLocationOutputEntity(this HydraulicBoundaryLocationOutput output) + { + if (output == null) + { + throw new ArgumentNullException(nameof(output)); + } + + return new HydraulicLocationOutputEntity + { + Result = double.IsNaN(output.Result) + ? (double?)null + : output.Result, + TargetProbability = double.IsNaN(output.TargetProbability) + ? (double?)null + : output.TargetProbability, + TargetReliability = double.IsNaN(output.TargetReliability) + ? (double?)null + : output.TargetReliability, + CalculatedProbability = double.IsNaN(output.CalculatedProbability) + ? (double?)null + : output.CalculatedProbability, + CalculatedReliability = double.IsNaN(output.CalculatedReliability) + ? (double?)null + : output.CalculatedReliability, + CalculationConvergence = (byte)output.CalculationConvergence, + GeneralResultSubMechanismIllustrationPointEntity = output.GeneralResult?.CreateGeneralResultSubMechanismIllustrationPointEntity() + }; + } + + /// /// Creates a based on the information of the . /// /// The output to create a database entity for. /// The calculation output type. /// A new . + /// /// Thrown when is null. internal static GrassCoverErosionOutwardsHydraulicLocationOutputEntity CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(this HydraulicBoundaryLocationOutput output, HydraulicLocationOutputType outputType) Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HydraulicBoundaryLocationOutputCreateExtensionsTest.cs =================================================================== diff -u -rb3c727f0765a7658ebdef636b20fcc78abc11ed1 -r41644e20d80f5793adb5e9da8d8e1a359887eb00 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HydraulicBoundaryLocationOutputCreateExtensionsTest.cs (.../HydraulicBoundaryLocationOutputCreateExtensionsTest.cs) (revision b3c727f0765a7658ebdef636b20fcc78abc11ed1) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HydraulicBoundaryLocationOutputCreateExtensionsTest.cs (.../HydraulicBoundaryLocationOutputCreateExtensionsTest.cs) (revision 41644e20d80f5793adb5e9da8d8e1a359887eb00) @@ -36,6 +36,17 @@ public class HydraulicBoundaryLocationOutputCreateExtensionsTest { [Test] + public void CreateHydraulicLocationOutputEntity_HydraulicLocationOutputNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => ((HydraulicBoundaryLocationOutput) null).CreateHydraulicLocationOutputEntity(); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("output", exception.ParamName); + } + + [Test] public void CreateHydraulicLocationOutputEntity_WithValidParameters_ReturnsHydraulicLocationEntityWithOutputSet() { // Setup @@ -44,14 +55,11 @@ random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextEnumValue(), null); - var outputType = random.NextEnumValue(); - // Call - GrassCoverErosionOutwardsHydraulicLocationOutputEntity entity = HydraulicBoundaryLocationOutputCreateExtensions.CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(outputType); + HydraulicLocationOutputEntity entity = output.CreateHydraulicLocationOutputEntity(); // Assert Assert.IsNotNull(entity); - Assert.AreEqual((byte) outputType, entity.HydraulicLocationOutputType); Assert.AreEqual(output.Result, entity.Result, output.Result.GetAccuracy()); Assert.AreEqual(output.TargetProbability, entity.TargetProbability); Assert.AreEqual(output.TargetReliability, entity.TargetReliability, output.TargetReliability.GetAccuracy()); @@ -70,14 +78,11 @@ var output = new HydraulicBoundaryLocationOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, random.NextEnumValue(), null); - var outputType = random.NextEnumValue(); - // Call - GrassCoverErosionOutwardsHydraulicLocationOutputEntity entity = HydraulicBoundaryLocationOutputCreateExtensions.CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(outputType); + HydraulicLocationOutputEntity entity = output.CreateHydraulicLocationOutputEntity(); // Assert Assert.IsNotNull(entity); - Assert.AreEqual((byte) outputType, entity.HydraulicLocationOutputType); Assert.IsNull(entity.Result); Assert.IsNull(entity.TargetProbability); Assert.IsNull(entity.TargetReliability); @@ -97,16 +102,29 @@ double.NaN, double.NaN, random.NextEnumValue(), GetGeneralResult()); - var outputType = random.NextEnumValue(); - // Call - GrassCoverErosionOutwardsHydraulicLocationOutputEntity entity = output.CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(outputType); + HydraulicLocationOutputEntity entity = output.CreateHydraulicLocationOutputEntity(); // Assert AssertGeneralResult(output.GeneralResult, entity.GeneralResultSubMechanismIllustrationPointEntity); } [Test] + public void CreateGrassCoverErosionOutwardsHydraulicLocationOutputEntity_HydraulicBoundaryLocationOutputNull_ThrowsArgumentNullException() + { + // Setup + var random = new Random(21); + + // Call + TestDelegate call = () => + ((HydraulicBoundaryLocationOutput) null).CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(random.NextEnumValue()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("output", exception.ParamName); + } + + [Test] public void CreateGrassCoverErosionOutwardsHydraulicLocationOutputEntity_WithValidParameters_ReturnsHydraulicLocationEntityWithOutputSet() { // Setup @@ -134,21 +152,6 @@ } [Test] - public void CreateGrassCoverErosionOutwardsHydraulicLocationOutputEntity_HydraulicBoundaryLocationOutputNull_ThrowsArgumentNullException() - { - // Setup - var random = new Random(21); - - // Call - TestDelegate call = () => - ((HydraulicBoundaryLocationOutput) null).CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(random.NextEnumValue()); - - // Assert - var exception = Assert.Throws(call); - Assert.AreEqual("output", exception.ParamName); - } - - [Test] public void CreateGrassCoverErosionOutwardsHydraulicLocationOutputEntity_WithNaNParameters_ReturnsHydraulicLocationEntityWithOutputNaN() { // Setup @@ -159,7 +162,7 @@ var outputType = random.NextEnumValue(); // Call - GrassCoverErosionOutwardsHydraulicLocationOutputEntity entity = + GrassCoverErosionOutwardsHydraulicLocationOutputEntity entity = output.CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(outputType); // Assert @@ -188,7 +191,7 @@ var outputType = random.NextEnumValue(); // Call - GrassCoverErosionOutwardsHydraulicLocationOutputEntity entity = + GrassCoverErosionOutwardsHydraulicLocationOutputEntity entity = output.CreateGrassCoverErosionOutwardsHydraulicBoundaryLocationOutputEntity(outputType); // Assert