Index: Riskeer/Storage/src/Riskeer.Storage.Core/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs =================================================================== diff -u -re1da963f397797ce6d47241e13c112ce24a6104c -rc5c98a50c4c7661fc5055a09c8dd117f5bb5e816 --- Riskeer/Storage/src/Riskeer.Storage.Core/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs) (revision e1da963f397797ce6d47241e13c112ce24a6104c) +++ Riskeer/Storage/src/Riskeer.Storage.Core/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs) (revision c5c98a50c4c7661fc5055a09c8dd117f5bb5e816) @@ -103,10 +103,21 @@ if (calculation.HasOutput) { var i = 0; - foreach (WaveConditionsOutput output in calculation.Output.WaveImpactOutput) + if (calculation.Output.WaveRunUpOutput != null) { - entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Add(output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(i++)); + foreach (WaveConditionsOutput output in calculation.Output.WaveRunUpOutput) + { + entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Add(output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveRunUp, i++)); + } } + + if (calculation.Output.WaveImpactOutput != null) + { + foreach (WaveConditionsOutput output in calculation.Output.WaveImpactOutput) + { + entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Add(output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveImpact, i++)); + } + } } } } Index: Riskeer/Storage/src/Riskeer.Storage.Core/Create/WaveConditionsOutputCreateExtensions.cs =================================================================== diff -u -rd319962bdfbaa0c9323493951ca8ff0b39b6bd8c -rc5c98a50c4c7661fc5055a09c8dd117f5bb5e816 --- Riskeer/Storage/src/Riskeer.Storage.Core/Create/WaveConditionsOutputCreateExtensions.cs (.../WaveConditionsOutputCreateExtensions.cs) (revision d319962bdfbaa0c9323493951ca8ff0b39b6bd8c) +++ Riskeer/Storage/src/Riskeer.Storage.Core/Create/WaveConditionsOutputCreateExtensions.cs (.../WaveConditionsOutputCreateExtensions.cs) (revision c5c98a50c4c7661fc5055a09c8dd117f5bb5e816) @@ -37,14 +37,16 @@ /// /// The calculation output for grass cover erosion outwards failure mechanism to /// create a database entity for. + /// The type of . /// The position of in the list of all outputs. /// A new . internal static GrassCoverErosionOutwardsWaveConditionsOutputEntity CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity( - this WaveConditionsOutput output, int order) + this WaveConditionsOutput output, GrassCoverErosionOutwardsWaveConditionsOutputType type, int order) { var entity = new GrassCoverErosionOutwardsWaveConditionsOutputEntity { Order = order, + OutputType = Convert.ToByte(type), WaterLevel = output.WaterLevel.ToNaNAsNull(), WaveHeight = output.WaveHeight.ToNaNAsNull(), WavePeakPeriod = output.WavePeakPeriod.ToNaNAsNull(), @@ -65,7 +67,7 @@ /// /// The calculation output for stability stone cover failure mechanism to /// create a database entity for. - /// The type of the . + /// The type of . /// The position of in the list of all outputs. /// A new . internal static StabilityStoneCoverWaveConditionsOutputEntity CreateStabilityStoneCoverWaveConditionsOutputEntity( Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs =================================================================== diff -u -r877f0d6830122b89d78bc3e27aa3c61736617276 -rc5c98a50c4c7661fc5055a09c8dd117f5bb5e816 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs) (revision 877f0d6830122b89d78bc3e27aa3c61736617276) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs) (revision c5c98a50c4c7661fc5055a09c8dd117f5bb5e816) @@ -20,14 +20,15 @@ // All rights reserved. using System; +using System.Collections.Generic; +using System.Linq; using Core.Common.Base.Data; using Core.Common.TestUtil; using NUnit.Framework; using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.Hydraulics; using Riskeer.Common.Data.TestUtil; using Riskeer.GrassCoverErosionOutwards.Data; -using Riskeer.GrassCoverErosionOutwards.Data.TestUtil; using Riskeer.Revetment.Data; using Riskeer.Revetment.Data.TestUtil; using Riskeer.Storage.Core.Create; @@ -217,13 +218,13 @@ } [Test] - public void Create_HasCalculationOutput_EntityHasCalculationOutputEntity() + public void Create_HasCalculationOutputWithWaveRunUpAndWaveImpact_EntityHasCalculationOutputEntity() { // Setup var registry = new PersistenceRegistry(); var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation { - Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create( + Output = GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUpAndWaveImpact( new[] { new TestWaveConditionsOutput() @@ -238,7 +239,76 @@ GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity = calculation.Create(registry, 0); // Assert - Assert.AreEqual(1, entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Count); + ICollection outputEntities = entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities; + Assert.AreEqual(2, outputEntities.Count); + CollectionAssert.AreEqual(new[] + { + 0, + 1 + }, outputEntities.Select(oe => oe.Order)); + + Assert.AreEqual(Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveRunUp), outputEntities.ElementAt(0).OutputType); + Assert.AreEqual(Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveImpact), outputEntities.ElementAt(1).OutputType); } + + [Test] + public void Create_HasCalculationOutputWithWaveRunUp_EntityHasCalculationOutputEntity() + { + // Setup + var registry = new PersistenceRegistry(); + var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation + { + Output = GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveRunUp( + new[] + { + new TestWaveConditionsOutput(), + new TestWaveConditionsOutput() + }) + }; + + // Call + GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity = calculation.Create(registry, 0); + + // Assert + ICollection outputEntities = entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities; + Assert.AreEqual(2, outputEntities.Count); + CollectionAssert.AreEqual(new[] + { + 0, + 1 + }, outputEntities.Select(oe => oe.Order)); + + Assert.IsTrue(outputEntities.All(oe => oe.OutputType == Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveRunUp))); + } + + [Test] + public void Create_HasCalculationOutputWithWaveImpact_EntityHasCalculationOutputEntity() + { + // Setup + var registry = new PersistenceRegistry(); + var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation + { + Output = GrassCoverErosionOutwardsWaveConditionsOutputFactory.CreateOutputWithWaveImpact( + new[] + { + new TestWaveConditionsOutput(), + new TestWaveConditionsOutput() + }) + }; + + // Call + GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity = calculation.Create(registry, 0); + + // Assert + ICollection outputEntities = entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities; + Assert.AreEqual(2, outputEntities.Count); + CollectionAssert.AreEqual(new[] + { + 0, + 1 + }, outputEntities.Select(oe => oe.Order)); + + Assert.IsTrue(outputEntities.All(oe => oe.OutputType == Convert.ToByte(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveImpact))); + } } } \ No newline at end of file Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rc5c98a50c4c7661fc5055a09c8dd117f5bb5e816 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs) (revision c5c98a50c4c7661fc5055a09c8dd117f5bb5e816) @@ -19,6 +19,8 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; +using Core.Common.TestUtil; using NUnit.Framework; using Riskeer.Common.Data.Hydraulics; using Riskeer.Common.Data.TestUtil; @@ -36,11 +38,14 @@ public void Create_AllOutputValuesSet_ReturnEntity() { // Setup + var random = new Random(21); + int order = random.Next(); + var outputType = random.NextEnumValue(); + var output = new TestWaveConditionsOutput(); - const int order = 22; // Call - GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(order); + GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(outputType, order); // Assert Assert.AreEqual(output.WaterLevel, entity.WaterLevel, output.WaterLevel.GetAccuracy()); @@ -53,6 +58,7 @@ Assert.AreEqual(output.CalculatedProbability, entity.CalculatedProbability); Assert.AreEqual(output.CalculatedReliability, entity.CalculatedReliability, output.CalculatedReliability.GetAccuracy()); Assert.AreEqual(output.CalculationConvergence, (CalculationConvergence) entity.CalculationConvergence); + Assert.AreEqual(Convert.ToByte(outputType), entity.OutputType); Assert.IsNull(entity.GrassCoverErosionOutwardsWaveConditionsCalculationEntity); } @@ -65,7 +71,8 @@ double.NaN, double.NaN, double.NaN, CalculationConvergence.NotCalculated); // Call - GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(1); + GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = + output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(GrassCoverErosionOutwardsWaveConditionsOutputType.WaveImpact, 1); // Assert Assert.IsNull(entity.WaterLevel); Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsCalculationCreateExtensionsTest.cs =================================================================== diff -u -r75b608e20c7888ca79fb75ab9a70831056c4580a -rc5c98a50c4c7661fc5055a09c8dd117f5bb5e816 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsCalculationCreateExtensionsTest.cs (.../StabilityStoneCoverWaveConditionsCalculationCreateExtensionsTest.cs) (revision 75b608e20c7888ca79fb75ab9a70831056c4580a) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsCalculationCreateExtensionsTest.cs (.../StabilityStoneCoverWaveConditionsCalculationCreateExtensionsTest.cs) (revision c5c98a50c4c7661fc5055a09c8dd117f5bb5e816) @@ -259,7 +259,7 @@ Output = StabilityStoneCoverWaveConditionsOutputFactory.CreateOutputWithBlocks(new[] { new TestWaveConditionsOutput(), - new TestWaveConditionsOutput(), + new TestWaveConditionsOutput() }) }; @@ -288,7 +288,7 @@ Output = StabilityStoneCoverWaveConditionsOutputFactory.CreateOutputWithColumns(new[] { new TestWaveConditionsOutput(), - new TestWaveConditionsOutput(), + new TestWaveConditionsOutput() }) };