Index: dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamPipingSellmeijer4ForcesTests.cs =================================================================== diff -u -r511 -r515 --- dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamPipingSellmeijer4ForcesTests.cs (.../DamPipingSellmeijer4ForcesTests.cs) (revision 511) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamPipingSellmeijer4ForcesTests.cs (.../DamPipingSellmeijer4ForcesTests.cs) (revision 515) @@ -1,7 +1,11 @@ using System.Collections.Generic; +using System.Data; using Deltares.DamEngine.Calculators.KernelWrappers.Common; using Deltares.DamEngine.Calculators.KernelWrappers.DamPipingSellmeijer4Forces; +using Deltares.DamEngine.Data.Design; +using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.General.Results; +using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.Standard.Logging; using NUnit.Framework; @@ -12,7 +16,7 @@ { [Test] - public void TestCalculation() + public void TestFullCalculation() { // expected results are based on test in 'https://repos.deltares.nl/repos/dam/dam classic' revision 190 // reducedFall = HRiver - HExit - (Rc * DTotal) = 1.0 - 0.0 - (0.3 * 2.0) = 0.4 @@ -48,5 +52,80 @@ Assert.AreEqual(4.7596469835953883, result.PipingDesignResults.Sellmeijer4ForcesHcritical, diff); } + [Test] + public void TestValidate() + { + var kernelWrapper = new DamPipingSellmeijer4ForcesKernelWrapper(); + + // Validate without setting values. Expected error messages. + var damPipingInput = new DamPipingSellmeijer4ForcesInput(); + List messages; + kernelWrapper.Validate(damPipingInput, out messages); + Assert.IsTrue(messages.Count > 0); + + // Validate the input when valid input is provided. Expected no messages. + damPipingInput = new DamPipingSellmeijer4ForcesInput + { + HRiver = 1.0, + HExit = 0.0, + Rc = 0.3, + DTotal = 2.0, + AquiferHeight = 8.0, + SeepageLength = 40.5, + D70 = 200.0, + WhitesConstant = 0.25, + BeddingAngle = 37.0, + WaterViscosity = 1.33E-06, + PermeabilityKx = 0.0001 + }; + messages.Clear(); + kernelWrapper.Validate(damPipingInput, out messages); + Assert.AreEqual(0, messages.Count); + } + + [Test] + public void TestPostProcess() + { + var kernelWrapper = new DamPipingSellmeijer4ForcesKernelWrapper(); + + DamPipingSellmeijer4ForcesOutput output = new DamPipingSellmeijer4ForcesOutput(); + output.FoSp = 1.1; + output.Hc = 2.2; + + DesignResult result; + kernelWrapper.PostProcess(output, out result); + Assert.AreEqual(output.FoSp, result.PipingDesignResults.Sellmeijer4ForcesFactor); + Assert.AreEqual(output.Hc, result.PipingDesignResults.Sellmeijer4ForcesHcritical); + } + + [Test] + [ExpectedException(typeof(NoNullAllowedException), ExpectedMessage = "Geen invoer object gedefinieerd voor Sellmeijer 4 Krachten")] + [SetUICulture("nl-NL")] + public void TestLanguageNLThrowsExceptionWhenInputIsNull() + { + var kernelWrapper = new DamPipingSellmeijer4ForcesKernelWrapper(); + List messages; + kernelWrapper.Execute(null, out messages); + } + + [Test] + [ExpectedException(typeof(NoNullAllowedException), ExpectedMessage = "No input object defined for Sellmeijer 4 Forces")] + [SetUICulture("en-US")] + public void TestLanguageENThrowsExceptionWhenInputIsNull() + { + var kernelWrapper = new DamPipingSellmeijer4ForcesKernelWrapper(); + List messages; + kernelWrapper.Execute(null, out messages); + } + + [Test] + [ExpectedException(typeof(NoNullAllowedException), ExpectedMessage = "Geen uitvoer object gedefinieerd voor Sellmeijer 4 Krachten")] + [SetUICulture("nl-NL")] + public void TestThrowsExceptionWhenOutputIsNull() + { + var kernelWrapper = new DamPipingSellmeijer4ForcesKernelWrapper(); + DesignResult result; + kernelWrapper.PostProcess(null, out result); + } } }