Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionInwards/GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensions.cs =================================================================== diff -u -rb761c34a465fc6d203555b5a52839dd1681aad5a -rddb88b5bdd3b694ca96197e3b277c8096ce91cb9 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionInwards/GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensions.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensions.cs) (revision b761c34a465fc6d203555b5a52839dd1681aad5a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionInwards/GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensions.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensions.cs) (revision ddb88b5bdd3b694ca96197e3b277c8096ce91cb9) @@ -32,22 +32,33 @@ internal static class GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensions { /// - /// Creates a based on the information of the . + /// Creates a + /// based on the information of the . /// /// The result to create a database entity for. /// The object keeping track of create operations. /// A new . - /// Thrown when is null. - internal static GrassCoverErosionInwardsSectionResultEntity Create(this GrassCoverErosionInwardsFailureMechanismSectionResult result, PersistenceRegistry registry) + /// Thrown when any parameter is null. + internal static GrassCoverErosionInwardsSectionResultEntity Create(this GrassCoverErosionInwardsFailureMechanismSectionResult result, + PersistenceRegistry registry) { + if (result == null) + { + throw new ArgumentNullException(nameof(result)); + } + if (registry == null) { throw new ArgumentNullException(nameof(registry)); } var sectionResultEntity = new GrassCoverErosionInwardsSectionResultEntity { - LayerOne = Convert.ToByte(result.AssessmentLayerOne), - LayerThree = result.TailorMadeAssessmentProbability.ToNaNAsNull() + SimpleAssessmentResult = Convert.ToByte(result.SimpleAssessmentResult), + DetailedAssessmentResult = Convert.ToByte(result.DetailedAssessmentResult), + TailorMadeAssessmentResult = Convert.ToByte(result.TailorMadeAssessmentResult), + TailorMadeAssessmentProbability = result.TailorMadeAssessmentProbability.ToNaNAsNull(), + UseManualAssemblyProbability = Convert.ToByte(result.UseManualAssemblyProbability), + ManualAssemblyProbability = result.ManualAssemblyProbability.ToNaNAsNull() }; if (result.Calculation != null) { Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/GrassCoverErosionInwards/GrassCoverErosionInwardsSectionResultEntityReadExtensions.cs =================================================================== diff -u -rb761c34a465fc6d203555b5a52839dd1681aad5a -rddb88b5bdd3b694ca96197e3b277c8096ce91cb9 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/GrassCoverErosionInwards/GrassCoverErosionInwardsSectionResultEntityReadExtensions.cs (.../GrassCoverErosionInwardsSectionResultEntityReadExtensions.cs) (revision b761c34a465fc6d203555b5a52839dd1681aad5a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/GrassCoverErosionInwards/GrassCoverErosionInwardsSectionResultEntityReadExtensions.cs (.../GrassCoverErosionInwardsSectionResultEntityReadExtensions.cs) (revision ddb88b5bdd3b694ca96197e3b277c8096ce91cb9) @@ -21,8 +21,7 @@ using System; using Application.Ringtoets.Storage.DbContext; -using Core.Common.Base.Data; -using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Primitives; using Ringtoets.GrassCoverErosionInwards.Data; namespace Application.Ringtoets.Storage.Read.GrassCoverErosionInwards @@ -37,24 +36,37 @@ /// Reads the and use the information to construct a /// . /// - /// The to create for. + /// The + /// to update the . /// The target of the read operation. /// The object keeping track of read operations. - /// A new . /// Thrown when any input parameter is null. - internal static void Read(this GrassCoverErosionInwardsSectionResultEntity entity, GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult, ReadConversionCollector collector) + internal static void Read(this GrassCoverErosionInwardsSectionResultEntity entity, + GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult, + ReadConversionCollector collector) { + if (entity == null) + { + throw new ArgumentNullException(nameof(entity)); + } + if (collector == null) { throw new ArgumentNullException(nameof(collector)); } + if (sectionResult == null) { throw new ArgumentNullException(nameof(sectionResult)); } - sectionResult.AssessmentLayerOne = (AssessmentLayerOneState) entity.LayerOne; - sectionResult.TailorMadeAssessmentProbability = entity.LayerThree.ToNullAsNaN(); + sectionResult.SimpleAssessmentResult = (SimpleAssessmentValidityOnlyResultType) entity.SimpleAssessmentResult; + sectionResult.DetailedAssessmentResult = (DetailedAssessmentProbabilityOnlyResultType) entity.DetailedAssessmentResult; + sectionResult.TailorMadeAssessmentResult = (TailorMadeAssessmentProbabilityCalculationResultType) entity.TailorMadeAssessmentResult; + sectionResult.TailorMadeAssessmentProbability = entity.TailorMadeAssessmentProbability.ToNullAsNaN(); + sectionResult.UseManualAssemblyProbability = Convert.ToBoolean(entity.UseManualAssemblyProbability); + sectionResult.ManualAssemblyProbability = entity.ManualAssemblyProbability.ToNullAsNaN(); + if (entity.GrassCoverErosionInwardsCalculationEntity != null) { sectionResult.Calculation = entity.GrassCoverErosionInwardsCalculationEntity.Read(collector); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionInwards/GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensionsTest.cs =================================================================== diff -u -rb761c34a465fc6d203555b5a52839dd1681aad5a -rddb88b5bdd3b694ca96197e3b277c8096ce91cb9 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionInwards/GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensionsTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensionsTest.cs) (revision b761c34a465fc6d203555b5a52839dd1681aad5a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionInwards/GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensionsTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensionsTest.cs) (revision ddb88b5bdd3b694ca96197e3b277c8096ce91cb9) @@ -24,10 +24,9 @@ using Application.Ringtoets.Storage.Create.GrassCoverErosionInwards; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.TestUtil; -using Core.Common.Base.Data; using Core.Common.TestUtil; using NUnit.Framework; -using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Primitives; using Ringtoets.GrassCoverErosionInwards.Data; namespace Application.Ringtoets.Storage.Test.Create.GrassCoverErosionInwards @@ -36,6 +35,17 @@ public class GrassCoverErosionInwardsFailureMechanismSectionResultCreateExtensionsTest { [Test] + public void Create_FailureMechanismSectionResultNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => ((GrassCoverErosionInwardsFailureMechanismSectionResult) null).Create(new PersistenceRegistry()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("result", exception.ParamName); + } + + [Test] public void Create_WithoutPersistenceRegistry_ThrowsArgumentNullException() { // Setup @@ -54,13 +64,21 @@ { // Setup var random = new Random(21); - var assessmentLayerOneResult = random.NextEnumValue(); + var simpleAssessmentResult = random.NextEnumValue(); + var detailedAssessmentResult = random.NextEnumValue(); + var tailorMadeAssessmentResult = random.NextEnumValue(); double tailorMadeAssessmentProbability = random.NextDouble(); + bool useManualAssessmentProbability = random.NextBoolean(); + double manualAssessmentProbability = random.NextDouble(); var sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(new TestFailureMechanismSection()) { - AssessmentLayerOne = assessmentLayerOneResult, - TailorMadeAssessmentProbability = tailorMadeAssessmentProbability + SimpleAssessmentResult = simpleAssessmentResult, + DetailedAssessmentResult = detailedAssessmentResult, + TailorMadeAssessmentResult = tailorMadeAssessmentResult, + TailorMadeAssessmentProbability = tailorMadeAssessmentProbability, + UseManualAssemblyProbability = useManualAssessmentProbability, + ManualAssemblyProbability = manualAssessmentProbability }; var registry = new PersistenceRegistry(); @@ -69,18 +87,24 @@ GrassCoverErosionInwardsSectionResultEntity entity = sectionResult.Create(registry); // Assert - Assert.AreEqual(Convert.ToByte(assessmentLayerOneResult), entity.LayerOne); - Assert.AreEqual(tailorMadeAssessmentProbability, entity.LayerThree); + Assert.AreEqual(Convert.ToByte(simpleAssessmentResult), entity.SimpleAssessmentResult); + Assert.AreEqual(Convert.ToByte(detailedAssessmentResult), entity.DetailedAssessmentResult); + Assert.AreEqual(Convert.ToByte(tailorMadeAssessmentResult), entity.TailorMadeAssessmentResult); + Assert.AreEqual(tailorMadeAssessmentProbability, entity.TailorMadeAssessmentProbability); + Assert.AreEqual(Convert.ToByte(useManualAssessmentProbability), entity.UseManualAssemblyProbability); + Assert.AreEqual(manualAssessmentProbability, entity.ManualAssemblyProbability); + Assert.IsNull(entity.GrassCoverErosionInwardsCalculationEntity); } [Test] - public void Create_WithNaNLevel3Result_ReturnsEntityWithExpectedResults() + public void Create_SectionResultWithNaNValues_ReturnsEntityWithExpectedResults() { // Setup var sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(new TestFailureMechanismSection()) { - TailorMadeAssessmentProbability = double.NaN + TailorMadeAssessmentProbability = double.NaN, + ManualAssemblyProbability = double.NaN }; var registry = new PersistenceRegistry(); @@ -89,7 +113,8 @@ GrassCoverErosionInwardsSectionResultEntity entity = sectionResult.Create(registry); // Assert - Assert.IsNull(entity.LayerThree); + Assert.IsNull(entity.TailorMadeAssessmentProbability); + Assert.IsNull(entity.ManualAssemblyProbability); } [Test] @@ -103,14 +128,14 @@ }; var registry = new PersistenceRegistry(); - var entity = new GrassCoverErosionInwardsCalculationEntity(); - registry.Register(entity, calculation); + var calculationEntity = new GrassCoverErosionInwardsCalculationEntity(); + registry.Register(calculationEntity, calculation); // Call - GrassCoverErosionInwardsSectionResultEntity result = sectionResult.Create(registry); + GrassCoverErosionInwardsSectionResultEntity entity = sectionResult.Create(registry); // Assert - Assert.AreSame(entity, result.GrassCoverErosionInwardsCalculationEntity); + Assert.AreSame(calculationEntity, entity.GrassCoverErosionInwardsCalculationEntity); } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/GrassCoverErosionInwards/GrassCoverErosionInwardsSectionResultEntityReadExtensionsTest.cs =================================================================== diff -u -rb761c34a465fc6d203555b5a52839dd1681aad5a -rddb88b5bdd3b694ca96197e3b277c8096ce91cb9 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/GrassCoverErosionInwards/GrassCoverErosionInwardsSectionResultEntityReadExtensionsTest.cs (.../GrassCoverErosionInwardsSectionResultEntityReadExtensionsTest.cs) (revision b761c34a465fc6d203555b5a52839dd1681aad5a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/GrassCoverErosionInwards/GrassCoverErosionInwardsSectionResultEntityReadExtensionsTest.cs (.../GrassCoverErosionInwardsSectionResultEntityReadExtensionsTest.cs) (revision ddb88b5bdd3b694ca96197e3b277c8096ce91cb9) @@ -27,6 +27,7 @@ using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Primitives; using Ringtoets.GrassCoverErosionInwards.Data; namespace Application.Ringtoets.Storage.Test.Read.GrassCoverErosionInwards @@ -35,6 +36,19 @@ public class GrassCoverErosionInwardsSectionResultEntityReadExtensionsTest { [Test] + public void Read_EntityNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => ((GrassCoverErosionInwardsSectionResultEntity) null).Read( + new GrassCoverErosionInwardsFailureMechanismSectionResult(new TestFailureMechanismSection()), + new ReadConversionCollector()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("entity", exception.ParamName); + } + + [Test] public void Read_SectionResultIsNull_ThrowArgumentNullException() { // Setup @@ -67,27 +81,39 @@ { // Setup var random = new Random(21); - var layerOne = random.NextEnumValue(); + var simpleAssessmentResult = random.NextEnumValue(); + var detailedAssessmentResult = random.NextEnumValue(); + var tailorMadeAssessmentResult = random.NextEnumValue(); double tailorMadeAssessmentProbability = random.NextDouble(); + bool useManualAssemblyProbability = random.NextBoolean(); + double manualAssemblyProbability = random.NextDouble(); var collector = new ReadConversionCollector(); var failureMechanismSectionEntity = new FailureMechanismSectionEntity(); collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection()); var entity = new GrassCoverErosionInwardsSectionResultEntity { - LayerThree = tailorMadeAssessmentProbability, - LayerOne = Convert.ToByte(layerOne), - FailureMechanismSectionEntity = failureMechanismSectionEntity + FailureMechanismSectionEntity = failureMechanismSectionEntity, + SimpleAssessmentResult = Convert.ToByte(simpleAssessmentResult), + DetailedAssessmentResult = Convert.ToByte(detailedAssessmentResult), + TailorMadeAssessmentResult = Convert.ToByte(tailorMadeAssessmentResult), + TailorMadeAssessmentProbability = tailorMadeAssessmentProbability, + UseManualAssemblyProbability = Convert.ToByte(useManualAssemblyProbability), + ManualAssemblyProbability = manualAssemblyProbability }; var sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(new TestFailureMechanismSection()); // Call entity.Read(sectionResult, collector); // Assert - Assert.AreEqual(layerOne, sectionResult.AssessmentLayerOne); + Assert.AreEqual(simpleAssessmentResult, sectionResult.SimpleAssessmentResult); + Assert.AreEqual(detailedAssessmentResult, sectionResult.DetailedAssessmentResult); + Assert.AreEqual(tailorMadeAssessmentResult, sectionResult.TailorMadeAssessmentResult); Assert.AreEqual(tailorMadeAssessmentProbability, sectionResult.TailorMadeAssessmentProbability, 1e-6); + Assert.AreEqual(useManualAssemblyProbability, sectionResult.UseManualAssemblyProbability); + Assert.AreEqual(manualAssemblyProbability, sectionResult.ManualAssemblyProbability, 1e-6); Assert.IsNull(sectionResult.Calculation); } @@ -102,11 +128,9 @@ var failureMechanismSectionEntity = new FailureMechanismSectionEntity(); collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection()); - + var entity = new GrassCoverErosionInwardsSectionResultEntity { - LayerThree = null, - LayerOne = Convert.ToByte(layerOne), FailureMechanismSectionEntity = failureMechanismSectionEntity }; var sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(new TestFailureMechanismSection()); @@ -115,8 +139,8 @@ entity.Read(sectionResult, collector); // Assert - Assert.AreEqual(layerOne, sectionResult.AssessmentLayerOne); Assert.IsNaN(sectionResult.TailorMadeAssessmentProbability); + Assert.IsNaN(sectionResult.ManualAssemblyProbability); Assert.IsNull(sectionResult.Calculation); }