Index: DeltaShell.sln =================================================================== diff -u -r1393f4adbeeef8e8239cb91501095223d575a17c -rabafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 --- DeltaShell.sln (.../DeltaShell.sln) (revision 1393f4adbeeef8e8239cb91501095223d575a17c) +++ DeltaShell.sln (.../DeltaShell.sln) (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -150,9 +150,9 @@ EndProject Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "WtiSetup", "setup\Plugins\WtiSetup\WtiSetup.wixproj", "{3CCB05DB-C7B3-4EF7-B41D-22B6D2A3774E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ringtoets.Piping.Service", "src\Plugins\Ringtoets\Piping\Wti.Service\Ringtoets.Piping.Service.csproj", "{10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ringtoets.Piping.Service", "src\Plugins\Ringtoets\Piping\src\Ringtoets.Piping.Service\Ringtoets.Piping.Service.csproj", "{10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Service.Test", "src\Plugins\Ringtoets\Piping\Wti.Service\Test\Wti.Service.Test.csproj", "{D783543B-46A1-4848-A812-AF5A5259ED7E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Service.Test", "src\Plugins\Ringtoets\Piping\test\Ringtoets.Piping.Service.Test\Wti.Service.Test.csproj", "{D783543B-46A1-4848-A812-AF5A5259ED7E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "documentation", "documentation", "{0D2E4E16-EE0A-4E50-9218-947B1D91C84D}" EndProject @@ -168,6 +168,10 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Piping", "Piping", "{F3A82DA4-A377-4009-A424-EFC8839913ED}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0FA77E45-C347-4677-9DA0-4C330D1440D5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C2EEB390-385B-4471-ABB8-9C1F1A8D0C11}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CreateInstaller|x86 = CreateInstaller|x86 @@ -526,13 +530,15 @@ {E4B0E068-F1A3-47BA-965F-0EC1E78E530A} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A} {9A5C8069-520E-49D3-AA62-E8FB19614A27} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A} {19EB1C52-D90B-40F2-A7AF-364CC5D89F68} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A} - {D783543B-46A1-4848-A812-AF5A5259ED7E} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A} {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A} {955E574D-67CE-4347-AA6B-7DF8A04ED754} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A} {3CCB05DB-C7B3-4EF7-B41D-22B6D2A3774E} = {C4E268AD-A25B-4F47-8F92-E5137FDF7CC7} - {4AD99020-8612-46E5-A313-F9ADA7B196E4} = {0D2E4E16-EE0A-4E50-9218-947B1D91C84D} {F3A82DA4-A377-4009-A424-EFC8839913ED} = {5A029776-37C6-4622-A4E9-9DB9E8E935AB} - {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} = {F3A82DA4-A377-4009-A424-EFC8839913ED} + {4AD99020-8612-46E5-A313-F9ADA7B196E4} = {0D2E4E16-EE0A-4E50-9218-947B1D91C84D} + {0FA77E45-C347-4677-9DA0-4C330D1440D5} = {F3A82DA4-A377-4009-A424-EFC8839913ED} + {C2EEB390-385B-4471-ABB8-9C1F1A8D0C11} = {F3A82DA4-A377-4009-A424-EFC8839913ED} + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} = {0FA77E45-C347-4677-9DA0-4C330D1440D5} + {D783543B-46A1-4848-A812-AF5A5259ED7E} = {C2EEB390-385B-4471-ABB8-9C1F1A8D0C11} EndGlobalSection GlobalSection(TextTemplating) = postSolution TextTemplating = 1 Index: src/DeltaShell/DeltaShell.Gui/DeltaShell.Gui.csproj =================================================================== diff -u -rba0dc5727d4047a12e9633f361f828050ea075df -rabafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 --- src/DeltaShell/DeltaShell.Gui/DeltaShell.Gui.csproj (.../DeltaShell.Gui.csproj) (revision ba0dc5727d4047a12e9633f361f828050ea075df) +++ src/DeltaShell/DeltaShell.Gui/DeltaShell.Gui.csproj (.../DeltaShell.Gui.csproj) (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -296,7 +296,7 @@ {d64e4f0e-e341-496f-82b2-941ad202b4e3} Wti.Calculation - + {10b8d63d-87e8-46df-aca9-a8cf22ee8fb5} Ringtoets.Piping.Service Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/DateTimeService.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationService.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/Ringtoets.Piping.Service.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/Test/PipingCalculationServiceTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/Test/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/Wti.Service/Test/Wti.Service.Test.csproj'. Fisheye: No comparison available. Pass `N' to diff? Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/DateTimeService.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/DateTimeService.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/DateTimeService.cs (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,21 @@ +using System; + +namespace Ringtoets.Piping.Service +{ + /// + /// The class is responsible for providing general operations. + /// + public static class DateTimeService + { + /// + /// Gets the current time in HH:mm:ss format. + /// + public static String CurrentTimeAsString + { + get + { + return DateTime.Now.ToString("HH:mm:ss"); + } + } + } +} \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationResult.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationResult.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationResult.cs (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,23 @@ +namespace Ringtoets.Piping.Service +{ + /// + /// Status result from a calculation or validation performed by the . + /// + public enum PipingCalculationResult + { + /// + /// Value which is returned when no calculation or validation errors occurred. + /// + Successful, + + /// + /// Value which is returned when the validation routine resulted in validation errors. + /// + ValidationErrors, + + /// + /// Value which is returned when the calculation routine encountered problems. + /// + CalculationErrors + } +} \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,131 @@ +using System; + +using log4net; + +using Ringtoets.Piping.Service.Properties; + +using Wti.Calculation.Piping; +using Wti.Data; + +namespace Ringtoets.Piping.Service +{ + /// + /// This class is responsible for invoking operations on the . Error and status information is + /// logged during the execution of the operation. At the end of an operation, a is returned, + /// representing the result of the operation. + /// + public static class PipingCalculationService + { + private static readonly ILog PipingDataLogger = LogManager.GetLogger(typeof(PipingData)); + + /// + /// Performs a piping calculation based on the supplied and sets + /// to the if the calculation was successful. Error and status information is logged during + /// the execution of the operation. + /// + /// The to base the input for the calculation upon. + /// If contains validation errors, then is returned. + /// If problems were encountered during the calculation, is returned. + /// Otherwise, is returned. + public static PipingCalculationResult PerfromValidatedCalculation(PipingData pipingData) + { + PipingCalculationResult validationResult = Validate(pipingData); + + if (validationResult == PipingCalculationResult.Successful) + { + ClearOutput(pipingData); + return Calculate(pipingData); + } + + return validationResult; + } + + /// + /// Performs validation over the values on the given . Error and status information is logged during + /// the execution of the operation. + /// + /// The for which to validate the values. + /// If contains validation errors, then is returned. + /// Otherwise, is returned. + public static PipingCalculationResult Validate(PipingData pipingData) + { + PipingDataLogger.Info(String.Format(Resources.ValidationStarted_0, DateTimeService.CurrentTimeAsString)); + + var validationResults = new PipingCalculation(CreateInputFromData(pipingData)).Validate(); + LogMessagesAsError(Resources.ErrorInPipingValidation_0, validationResults.ToArray()); + + PipingDataLogger.Info(String.Format(Resources.ValidationEnded_0, DateTimeService.CurrentTimeAsString)); + + return validationResults.Count > 0 ? PipingCalculationResult.ValidationErrors : PipingCalculationResult.Successful; + } + + private static void LogMessagesAsError(string format, params string[] errorMessages) + { + foreach (var errorMessage in errorMessages) + { + PipingDataLogger.Error(string.Format(format, errorMessage)); + } + } + + private static void ClearOutput(PipingData pipingData) + { + pipingData.Output = null; + } + + private static PipingCalculationResult Calculate(PipingData pipingData) + { + PipingDataLogger.Info(String.Format(Resources.CalculationStarted_0, DateTimeService.CurrentTimeAsString)); + + try + { + var pipingResult = new PipingCalculation(CreateInputFromData(pipingData)).Calculate(); + + pipingData.Output = new PipingOutput(pipingResult.UpliftZValue, + pipingResult.UpliftFactorOfSafety, + pipingResult.HeaveZValue, + pipingResult.HeaveFactorOfSafety, + pipingResult.SellmeijerZValue, + pipingResult.SellmeijerFactorOfSafety); + } + catch (PipingCalculationException e) + { + LogMessagesAsError(Resources.ErrorInPipingCalculation_0, e.Message); + return PipingCalculationResult.CalculationErrors; + } + finally + { + PipingDataLogger.Info(String.Format(Resources.CalculationEnded_0, DateTimeService.CurrentTimeAsString)); + } + return PipingCalculationResult.Successful; + } + + private static PipingCalculationInput CreateInputFromData(PipingData pipingData) + { + return new PipingCalculationInput( + pipingData.WaterVolumetricWeight, + pipingData.UpliftModelFactor, + pipingData.AssessmentLevel, + pipingData.PiezometricHeadExit, + pipingData.DampingFactorExit, + pipingData.PhreaticLevelExit, + pipingData.PiezometricHeadPolder, + pipingData.CriticalHeaveGradient, + pipingData.ThicknessCoverageLayer, + pipingData.SellmeijerModelFactor, + pipingData.SellmeijerReductionFactor, + pipingData.SeepageLength, + pipingData.SandParticlesVolumicWeight, + pipingData.WhitesDragCoefficient, + pipingData.Diameter70, + pipingData.DarcyPermeability, + pipingData.WaterKinematicViscosity, + pipingData.Gravity, + pipingData.ThicknessAquiferLayer, + pipingData.MeanDiameter70, + pipingData.BeddingAngle, + pipingData.ExitPointXCoordinate, + pipingData.SurfaceLine + ); + } + } +} \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/AssemblyInfo.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/AssemblyInfo.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/AssemblyInfo.cs (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,6 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("Ringtoets.Piping.Service")] +[assembly: AssemblyProduct("Ringtoets.Piping.Service")] +[assembly: Guid("3ad44406-356a-4ad1-b911-510da20d5430")] \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.Designer.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.Designer.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.Designer.cs (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,117 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Ringtoets.Piping.Service.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ringtoets.Piping.Service.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Berekening beëindigd om: {0}. + /// + internal static string CalculationEnded_0 { + get { + return ResourceManager.GetString("CalculationEnded_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Berekening gestart om: {0}. + /// + internal static string CalculationStarted_0 { + get { + return ResourceManager.GetString("CalculationStarted_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Piping berekening niet gelukt: {0}. + /// + internal static string ErrorInPipingCalculation_0 { + get { + return ResourceManager.GetString("ErrorInPipingCalculation_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Validatie mislukt: {0}. + /// + internal static string ErrorInPipingValidation_0 { + get { + return ResourceManager.GetString("ErrorInPipingValidation_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Validatie beëindigd om: {0}. + /// + internal static string ValidationEnded_0 { + get { + return ResourceManager.GetString("ValidationEnded_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Validatie gestart om: {0}. + /// + internal static string ValidationStarted_0 { + get { + return ResourceManager.GetString("ValidationStarted_0", resourceCulture); + } + } + } +} Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.resx =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.resx (revision 0) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.resx (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Berekening beëindigd om: {0} + + + Berekening gestart om: {0} + + + Piping berekening niet gelukt: {0} + + + Validatie mislukt: {0} + + + Validatie beëindigd om: {0} + + + Validatie gestart om: {0} + + \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (revision 0) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,112 @@ + + + + + Debug + AnyCPU + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} + Library + Properties + Ringtoets.Piping.Service + Ringtoets.Piping.Service + v4.0 + 512 + + + true + bin\Debug\ + 4 + DEBUG;TRACE + full + x86 + false + prompt + MinimumRecommendedRules.ruleset + bin\Debug\Ringtoets.Piping.Service.xml + + + bin\Release\ + 4 + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + bin\Release\Ringtoets.Piping.Service.xml + + + + ..\..\..\..\..\..\lib\log4net.dll + + + + + + + + + + + + + + Properties\GlobalAssembly.cs + + + + + + + True + True + Resources.resx + + + + + {3DBD23CE-5C4A-4A49-B51C-B268CB2B510E} + DelftTools.Controls.Swf + + + {9A2D67E6-26AC-4D17-B11A-2B4372F2F572} + DelftTools.Controls + + + {82b61d20-fd4b-49be-9252-5bf6e3ee4666} + DelftTools.Shell.Core + + + {c90b77da-e421-43cc-b82e-529651bc21ac} + Wti.Base + False + + + {D64E4F0E-E341-496F-82B2-941AD202B4E3} + Wti.Calculation + + + {CE994CC9-6F6A-48AC-B4BE-02C30A21F4DB} + Wti.Data + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,107 @@ +using NUnit.Framework; + +using Ringtoets.Piping.Service; + +using Wti.Calculation.Test.Piping.Stub; +using Wti.Data; + +namespace Wti.Service.Test +{ + public class PipingCalculationServiceTest + { + private PipingData validPipingData; + + [SetUp] + public void SetUp() + { + validPipingData = new PipingData + { + AssessmentLevel = 1.0, + BeddingAngle = 1.0, + CriticalHeaveGradient = 1.0, + DampingFactorExit = 1.0, + DarcyPermeability = 1.0, + Diameter70 = 1.0, + ExitPointXCoordinate = 1.0, + Gravity = 1.0, + MeanDiameter70 = 1.0, + PiezometricHeadExit = 1.0, + PiezometricHeadPolder = 1.0, + PhreaticLevelExit = 2.0, + SandParticlesVolumicWeight = 1.0, + SeepageLength = 1.0, + SellmeijerModelFactor = 1.0, + SellmeijerReductionFactor = 1.0, + ThicknessAquiferLayer = 1.0, + ThicknessCoverageLayer = 1.0, + UpliftModelFactor = 1.0, + WaterKinematicViscosity = 1.0, + WaterVolumetricWeight = 1.0, + WhitesDragCoefficient = 1.0, + SurfaceLine = new RingtoetsPipingSurfaceLine() + }; + } + + [Test] + public void PerfromValidatedCalculation_ValidPipingDataNoOutput_ShouldSetOutput() + { + // Precondition + Assert.IsNull(validPipingData.Output); + + // Call + var result = PipingCalculationService.PerfromValidatedCalculation(validPipingData); + + // Assert + Assert.AreEqual(PipingCalculationResult.Successful, result); + Assert.IsNotNull(validPipingData.Output); + } + + [Test] + public void PerfromValidatedCalculation_ValidPipingDataWithOutput_ShouldChangeOutput() + { + // Setup + var output = new TestPipingOutput(); + validPipingData.Output = output; + + // Call + var result = PipingCalculationService.PerfromValidatedCalculation(validPipingData); + + // Assert + Assert.AreEqual(PipingCalculationResult.Successful, result); + Assert.AreNotSame(output, validPipingData.Output); + } + + [Test] + public void PerfromValidatedCalculation_InValidPipingDataWithOutput_ReturnsFalseNoOutputChange() + { + // Setup + var output = new TestPipingOutput(); + var invalidPipingData = new PipingData + { + Output = output + }; + + // Call + var result = PipingCalculationService.PerfromValidatedCalculation(invalidPipingData); + + // Assert + Assert.AreEqual(PipingCalculationResult.ValidationErrors, result); + Assert.AreSame(output, invalidPipingData.Output); + } + + [Test] + public void PerformValidatedCalculation_Diameter70AndAquiferPermeabilityZero_CalculationErrorOutputNull() + { + // Setup + validPipingData.Diameter70 = 0; + validPipingData.DarcyPermeability = 0; + + // Call + var result = PipingCalculationService.PerfromValidatedCalculation(validPipingData); + + // Assert + Assert.AreEqual(PipingCalculationResult.CalculationErrors, result); + Assert.IsNull(validPipingData.Output); + } + } +} \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Properties/AssemblyInfo.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Properties/AssemblyInfo.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Properties/AssemblyInfo.cs (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("Wti.Service.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("Wti.Service.Test")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("2533df4d-d679-4225-90b8-ce6e8bc73ea8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Wti.Service.Test.csproj =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Wti.Service.Test.csproj (revision 0) +++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Wti.Service.Test.csproj (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -0,0 +1,97 @@ + + + + + Debug + AnyCPU + {D783543B-46A1-4848-A812-AF5A5259ED7E} + Library + Properties + Wti.Service.Test + Wti.Service.Test + v4.0 + 512 + + + true + bin\Debug\ + 4 + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\Release\ + 4 + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + + ..\..\..\..\..\..\lib\nunit.framework.dll + + + ..\..\..\..\..\..\lib\Rhino.Mocks.dll + + + + + + + + + + + + + + + + + {3DBD23CE-5C4A-4A49-B51C-B268CB2B510E} + DelftTools.Controls.Swf + + + {9A2D67E6-26AC-4D17-B11A-2B4372F2F572} + DelftTools.Controls + + + {82b61d20-fd4b-49be-9252-5bf6e3ee4666} + DelftTools.Shell.Core + + + {D64E4F0E-E341-496F-82B2-941AD202B4E3} + Wti.Calculation + + + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} + Ringtoets.Piping.Service + + + {CE994CC9-6F6A-48AC-B4BE-02C30A21F4DB} + Wti.Data + + + {7cd038e1-e111-4969-aced-22c5bd2974e1} + Wti.Forms + + + {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8} + Wti.Calculation.TestUtil + + + + + \ No newline at end of file Index: src/Plugins/Wti/Wti.Forms/Wti.Forms.csproj =================================================================== diff -u -rba0dc5727d4047a12e9633f361f828050ea075df -rabafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 --- src/Plugins/Wti/Wti.Forms/Wti.Forms.csproj (.../Wti.Forms.csproj) (revision ba0dc5727d4047a12e9633f361f828050ea075df) +++ src/Plugins/Wti/Wti.Forms/Wti.Forms.csproj (.../Wti.Forms.csproj) (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -106,7 +106,7 @@ {D64E4F0E-E341-496F-82B2-941AD202B4E3} Wti.Calculation - + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} Ringtoets.Piping.Service Index: src/Plugins/Wti/Wti.Plugin/Wti.Plugin.csproj =================================================================== diff -u -rba0dc5727d4047a12e9633f361f828050ea075df -rabafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 --- src/Plugins/Wti/Wti.Plugin/Wti.Plugin.csproj (.../Wti.Plugin.csproj) (revision ba0dc5727d4047a12e9633f361f828050ea075df) +++ src/Plugins/Wti/Wti.Plugin/Wti.Plugin.csproj (.../Wti.Plugin.csproj) (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -109,7 +109,7 @@ {d64e4f0e-e341-496f-82b2-941ad202b4e3} Wti.Calculation - + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} Ringtoets.Piping.Service Index: src/documentation/UML/UML.csproj =================================================================== diff -u -rba0dc5727d4047a12e9633f361f828050ea075df -rabafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 --- src/documentation/UML/UML.csproj (.../UML.csproj) (revision ba0dc5727d4047a12e9633f361f828050ea075df) +++ src/documentation/UML/UML.csproj (.../UML.csproj) (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799) @@ -62,7 +62,7 @@ {d64e4f0e-e341-496f-82b2-941ad202b4e3} Wti.Calculation - + {10b8d63d-87e8-46df-aca9-a8cf22ee8fb5} Ringtoets.Piping.Service