Index: Riskeer/Storage/src/Riskeer.Storage.Core/Read/FailureMechanismEntityReadExtensions.cs =================================================================== diff -u -r071a12cf216a4b371c3f900504d5922270962a33 -rc8a0e54fd2029ac1760758292510f5354ae399e7 --- Riskeer/Storage/src/Riskeer.Storage.Core/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 071a12cf216a4b371c3f900504d5922270962a33) +++ Riskeer/Storage/src/Riskeer.Storage.Core/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision c8a0e54fd2029ac1760758292510f5354ae399e7) @@ -680,9 +680,7 @@ private static void ReadWaveImpactAsphaltCoverGeneralInput(this FailureMechanismEntity entity, GeneralWaveImpactAsphaltCoverInput generalInput) { - GeneralWaveImpactAsphaltCoverInput generalWaveImpactAsphaltCoverInput = entity.WaveImpactAsphaltCoverFailureMechanismMetaEntities.Single().Read(); - generalInput.DeltaL = generalWaveImpactAsphaltCoverInput.DeltaL; - generalInput.ApplyLengthEffectInSection = generalWaveImpactAsphaltCoverInput.ApplyLengthEffectInSection; + entity.WaveImpactAsphaltCoverFailureMechanismMetaEntities.Single().Read(generalInput); } #endregion Index: Riskeer/Storage/src/Riskeer.Storage.Core/Read/WaveImpactAsphaltCover/WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensions.cs =================================================================== diff -u -rff27539a67b19406483c3e267c7942ff316a4ad1 -rc8a0e54fd2029ac1760758292510f5354ae399e7 --- Riskeer/Storage/src/Riskeer.Storage.Core/Read/WaveImpactAsphaltCover/WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensions.cs (.../WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensions.cs) (revision ff27539a67b19406483c3e267c7942ff316a4ad1) +++ Riskeer/Storage/src/Riskeer.Storage.Core/Read/WaveImpactAsphaltCover/WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensions.cs (.../WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensions.cs) (revision c8a0e54fd2029ac1760758292510f5354ae399e7) @@ -36,22 +36,24 @@ /// Read the and use the information to /// construct a . /// - /// The to create + /// The to update /// for. - /// A new . - /// Thrown when is null. - internal static GeneralWaveImpactAsphaltCoverInput Read(this WaveImpactAsphaltCoverFailureMechanismMetaEntity entity) + /// The to update. + /// Thrown when any parameter is null. + internal static void Read(this WaveImpactAsphaltCoverFailureMechanismMetaEntity entity, GeneralWaveImpactAsphaltCoverInput generalInput) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } - - return new GeneralWaveImpactAsphaltCoverInput + + if (generalInput == null) { - DeltaL = (RoundedDouble) entity.DeltaL, - ApplyLengthEffectInSection = Convert.ToBoolean(entity.ApplyLengthEffectInSection) - }; + throw new ArgumentNullException(nameof(generalInput)); + } + + generalInput.DeltaL = (RoundedDouble) entity.DeltaL; + generalInput.ApplyLengthEffectInSection = Convert.ToBoolean(entity.ApplyLengthEffectInSection); } } } \ No newline at end of file Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/WaveImpactAsphaltCover/WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensionsTest.cs =================================================================== diff -u -rff27539a67b19406483c3e267c7942ff316a4ad1 -rc8a0e54fd2029ac1760758292510f5354ae399e7 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/WaveImpactAsphaltCover/WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensionsTest.cs (.../WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensionsTest.cs) (revision ff27539a67b19406483c3e267c7942ff316a4ad1) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/WaveImpactAsphaltCover/WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensionsTest.cs (.../WaveImpactAsphaltCoverFailureMechanismMetaEntityReadExtensionsTest.cs) (revision c8a0e54fd2029ac1760758292510f5354ae399e7) @@ -36,26 +36,43 @@ public void Read_EntityNull_ThrowsArgumentNullException() { // Call - TestDelegate test = () => ((WaveImpactAsphaltCoverFailureMechanismMetaEntity) null).Read(); + void Call() => ((WaveImpactAsphaltCoverFailureMechanismMetaEntity) null) + .Read(new GeneralWaveImpactAsphaltCoverInput()); // Assert - var exception = Assert.Throws(test); + var exception = Assert.Throws(Call); Assert.AreEqual("entity", exception.ParamName); } + + [Test] + public void Read_GeneralInputNull_ThrowsArgumentNullException() + { + // Setup + var entity = new WaveImpactAsphaltCoverFailureMechanismMetaEntity(); + // Call + void Call() => entity.Read(null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("generalInput", exception.ParamName); + } + [Test] - public void Read_Always_ReturnGeneralWaveImpactAsphaltCoverInput() + public void Read_WithAllData_SetsGeneralInputProperties() { // Setup var random = new Random(); var entity = new WaveImpactAsphaltCoverFailureMechanismMetaEntity { - DeltaL = random.NextRoundedDouble(1.0, 2000.0), + DeltaL = random.NextDouble(1, 2000), ApplyLengthEffectInSection = Convert.ToByte(random.NextBoolean()) }; + var generalInput = new GeneralWaveImpactAsphaltCoverInput(); + // Call - GeneralWaveImpactAsphaltCoverInput generalInput = entity.Read(); + entity.Read(generalInput); // Assert Assert.AreEqual(entity.DeltaL, generalInput.DeltaL, generalInput.DeltaL.GetAccuracy());