Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HydraulicBoundaryLocationCreateExtensions.cs =================================================================== diff -u -r8bb6e849266ec28412ebfe23beccd7235c4db9bf -r14a04f6f5ad2079a2dbf88db0b762a203edb82af --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HydraulicBoundaryLocationCreateExtensions.cs (.../HydraulicBoundaryLocationCreateExtensions.cs) (revision 8bb6e849266ec28412ebfe23beccd7235c4db9bf) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HydraulicBoundaryLocationCreateExtensions.cs (.../HydraulicBoundaryLocationCreateExtensions.cs) (revision 14a04f6f5ad2079a2dbf88db0b762a203edb82af) @@ -56,6 +56,8 @@ Name = location.Name.DeepClone(), LocationX = location.Location.X.ToNaNAsNull(), LocationY = location.Location.Y.ToNaNAsNull(), + ShouldWaterLevelIllustrationPointsBeCalculated = GetShouldIllustrationPointsBeCalculated(location.DesignWaterLevelCalculation), + ShouldWaveHeightIllustrationPointsBeCalculated = GetShouldIllustrationPointsBeCalculated(location.WaveHeightCalculation), Order = order }; @@ -66,6 +68,11 @@ return entity; } + private static byte GetShouldIllustrationPointsBeCalculated(HydraulicBoundaryLocationCalculation calculation) + { + return Convert.ToByte(calculation.InputParameters.ShouldIllustrationPointsBeCalculated); + } + private static void CreateHydraulicLocationOutput(HydraulicLocationEntity entity, HydraulicBoundaryLocationOutput output, HydraulicLocationOutputType outputType) { @@ -104,6 +111,8 @@ Name = location.Name.DeepClone(), LocationX = location.Location.X.ToNaNAsNull(), LocationY = location.Location.Y.ToNaNAsNull(), + ShouldWaterLevelIllustrationPointsBeCalculated = GetShouldIllustrationPointsBeCalculated(location.DesignWaterLevelCalculation), + ShouldWaveHeightIllustrationPointsBeCalculated = GetShouldIllustrationPointsBeCalculated(location.WaveHeightCalculation), Order = order }; Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/HydraulicLocationEntityReadExtensions.cs =================================================================== diff -u -r8bb6e849266ec28412ebfe23beccd7235c4db9bf -r14a04f6f5ad2079a2dbf88db0b762a203edb82af --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/HydraulicLocationEntityReadExtensions.cs (.../HydraulicLocationEntityReadExtensions.cs) (revision 8bb6e849266ec28412ebfe23beccd7235c4db9bf) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/HydraulicLocationEntityReadExtensions.cs (.../HydraulicLocationEntityReadExtensions.cs) (revision 14a04f6f5ad2079a2dbf88db0b762a203edb82af) @@ -59,21 +59,36 @@ entity.LocationX.ToNullAsNaN(), entity.LocationY.ToNullAsNaN()); - IHydraulicLocationOutputEntity designWaterLevelOutputEntity = GetHydraulicLocationOutputEntity(entity, HydraulicLocationOutputType.DesignWaterLevel); - if (designWaterLevelOutputEntity != null) - { - hydraulicBoundaryLocation.DesignWaterLevelCalculation.Output = designWaterLevelOutputEntity.Read(); - } + SetDesignWaterLevelCalculation(entity, hydraulicBoundaryLocation); + SetWaveHeightCalculation(entity, hydraulicBoundaryLocation); + collector.Read(entity, hydraulicBoundaryLocation); + + return hydraulicBoundaryLocation; + } + + private static void SetWaveHeightCalculation(HydraulicLocationEntity entity, HydraulicBoundaryLocation hydraulicBoundaryLocation) + { + hydraulicBoundaryLocation.WaveHeightCalculation.InputParameters.ShouldIllustrationPointsBeCalculated = + Convert.ToBoolean(entity.ShouldWaveHeightIllustrationPointsBeCalculated); + IHydraulicLocationOutputEntity waveHeightOutputEntity = GetHydraulicLocationOutputEntity(entity, HydraulicLocationOutputType.WaveHeight); if (waveHeightOutputEntity != null) { hydraulicBoundaryLocation.WaveHeightCalculation.Output = waveHeightOutputEntity.Read(); } + } - collector.Read(entity, hydraulicBoundaryLocation); + private static void SetDesignWaterLevelCalculation(HydraulicLocationEntity entity, HydraulicBoundaryLocation hydraulicBoundaryLocation) + { + hydraulicBoundaryLocation.DesignWaterLevelCalculation.InputParameters.ShouldIllustrationPointsBeCalculated = + Convert.ToBoolean(entity.ShouldWaterLevelIllustrationPointsBeCalculated); - return hydraulicBoundaryLocation; + IHydraulicLocationOutputEntity designWaterLevelOutputEntity = GetHydraulicLocationOutputEntity(entity, HydraulicLocationOutputType.DesignWaterLevel); + if (designWaterLevelOutputEntity != null) + { + hydraulicBoundaryLocation.DesignWaterLevelCalculation.Output = designWaterLevelOutputEntity.Read(); + } } private static IHydraulicLocationOutputEntity GetHydraulicLocationOutputEntity( Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HydraulicBoundaryLocationCreateExtensionsTest.cs =================================================================== diff -u -r8bb6e849266ec28412ebfe23beccd7235c4db9bf -r14a04f6f5ad2079a2dbf88db0b762a203edb82af --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HydraulicBoundaryLocationCreateExtensionsTest.cs (.../HydraulicBoundaryLocationCreateExtensionsTest.cs) (revision 8bb6e849266ec28412ebfe23beccd7235c4db9bf) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HydraulicBoundaryLocationCreateExtensionsTest.cs (.../HydraulicBoundaryLocationCreateExtensionsTest.cs) (revision 14a04f6f5ad2079a2dbf88db0b762a203edb82af) @@ -57,20 +57,43 @@ double coordinateY = random.NextDouble(); int id = random.Next(0, 150); int order = random.Next(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(id, testName, coordinateX, coordinateY); + + bool shouldDesignWaterLevelIllustrationPointsBeCalculated = random.NextBoolean(); + bool shouldWaveHeightIllustrationPointsBeCalculated = random.NextBoolean(); + + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(id, testName, coordinateX, coordinateY) + { + DesignWaterLevelCalculation = + { + InputParameters = + { + ShouldIllustrationPointsBeCalculated = shouldDesignWaterLevelIllustrationPointsBeCalculated + } + }, + WaveHeightCalculation = + { + InputParameters = + { + ShouldIllustrationPointsBeCalculated = shouldWaveHeightIllustrationPointsBeCalculated + } + } + }; var registry = new PersistenceRegistry(); // Call HydraulicLocationEntity entity = hydraulicBoundaryLocation.Create(registry, order); // Assert Assert.IsNotNull(entity); + Assert.AreEqual(id, entity.LocationId); Assert.AreEqual(testName, entity.Name); Assert.AreEqual(coordinateX, entity.LocationX); Assert.AreEqual(coordinateY, entity.LocationY); - Assert.AreEqual(id, entity.LocationId); - Assert.IsEmpty(entity.HydraulicLocationOutputEntities); + Assert.AreEqual(Convert.ToByte(shouldDesignWaterLevelIllustrationPointsBeCalculated), entity.ShouldWaterLevelIllustrationPointsBeCalculated); + Assert.AreEqual(Convert.ToByte(shouldWaveHeightIllustrationPointsBeCalculated), entity.ShouldWaveHeightIllustrationPointsBeCalculated); Assert.AreEqual(order, entity.Order); + + Assert.IsEmpty(entity.HydraulicLocationOutputEntities); } [Test] @@ -171,7 +194,27 @@ double coordinateY = random.NextDouble(); int id = random.Next(0, 150); int order = random.Next(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(id, testName, coordinateX, coordinateY); + bool shouldDesignWaterLevelIllustrationPointsBeCalculated = random.NextBoolean(); + bool shouldWaveHeightIllustrationPointsBeCalculated = random.NextBoolean(); + + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(id, testName, coordinateX, coordinateY) + { + DesignWaterLevelCalculation = + { + InputParameters = + { + ShouldIllustrationPointsBeCalculated = shouldDesignWaterLevelIllustrationPointsBeCalculated + } + }, + WaveHeightCalculation = + { + InputParameters = + { + ShouldIllustrationPointsBeCalculated = shouldWaveHeightIllustrationPointsBeCalculated + } + } + }; + var registry = new PersistenceRegistry(); // Call @@ -180,11 +223,12 @@ // Assert Assert.IsNotNull(entity); + Assert.AreEqual(id, entity.LocationId); Assert.AreEqual(testName, entity.Name); Assert.AreEqual(coordinateX, entity.LocationX); Assert.AreEqual(coordinateY, entity.LocationY); - Assert.AreEqual(id, entity.LocationId); - Assert.IsEmpty(entity.GrassCoverErosionOutwardsHydraulicLocationOutputEntities); + Assert.AreEqual(Convert.ToByte(shouldDesignWaterLevelIllustrationPointsBeCalculated), entity.ShouldWaterLevelIllustrationPointsBeCalculated); + Assert.AreEqual(Convert.ToByte(shouldWaveHeightIllustrationPointsBeCalculated), entity.ShouldWaveHeightIllustrationPointsBeCalculated); Assert.AreEqual(order, entity.Order); } Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/HydraulicLocationEntityReadExtensionsTest.cs =================================================================== diff -u -r8bb6e849266ec28412ebfe23beccd7235c4db9bf -r14a04f6f5ad2079a2dbf88db0b762a203edb82af --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/HydraulicLocationEntityReadExtensionsTest.cs (.../HydraulicLocationEntityReadExtensionsTest.cs) (revision 8bb6e849266ec28412ebfe23beccd7235c4db9bf) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/HydraulicLocationEntityReadExtensionsTest.cs (.../HydraulicLocationEntityReadExtensionsTest.cs) (revision 14a04f6f5ad2079a2dbf88db0b762a203edb82af) @@ -23,6 +23,7 @@ using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Read; using Core.Common.Base.Data; +using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; @@ -70,12 +71,16 @@ const string testName = "testName"; double x = random.NextDouble(); double y = random.NextDouble(); + bool shouldDesignWaterLevelIllustrationPointsBeCalculated = random.NextBoolean(); + bool shouldWaveHeightIllustrationPointsBeCalculated = random.NextBoolean(); var entity = new HydraulicLocationEntity { LocationId = testId, Name = testName, LocationX = x, - LocationY = y + LocationY = y, + ShouldWaterLevelIllustrationPointsBeCalculated = Convert.ToByte(shouldDesignWaterLevelIllustrationPointsBeCalculated), + ShouldWaveHeightIllustrationPointsBeCalculated = Convert.ToByte(shouldWaveHeightIllustrationPointsBeCalculated) }; var collector = new ReadConversionCollector(); @@ -89,6 +94,10 @@ Assert.AreEqual(testName, location.Name); Assert.AreEqual(x, location.Location.X, 1e-6); Assert.AreEqual(y, location.Location.Y, 1e-6); + + AssertHydraulicBoundaryLocationCalculation(shouldDesignWaterLevelIllustrationPointsBeCalculated, location.DesignWaterLevelCalculation); + AssertHydraulicBoundaryLocationCalculation(shouldWaveHeightIllustrationPointsBeCalculated, location.WaveHeightCalculation); + Assert.IsFalse(location.DesignWaterLevelCalculation.HasOutput); Assert.IsFalse(location.WaveHeightCalculation.HasOutput); @@ -164,6 +173,12 @@ Assert.AreSame(location1, location2); } + private static void AssertHydraulicBoundaryLocationCalculation(bool shouldDesignWaterLevelIllustrationPointsBeCalculated, + HydraulicBoundaryLocationCalculation calculation) + { + Assert.AreEqual(shouldDesignWaterLevelIllustrationPointsBeCalculated, calculation.InputParameters.ShouldIllustrationPointsBeCalculated); + } + private static void AssertHydraulicBoundaryLocationOutput(IHydraulicLocationOutputEntity expected, HydraulicBoundaryLocationOutput actual) { if (expected == null)