Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs =================================================================== diff -u -re4c1ee9fe5170ccf7794006d572461d3f88e7740 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision e4c1ee9fe5170ccf7794006d572461d3f88e7740) +++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -11,6 +11,7 @@ using Ringtoets.Integration.Forms.PresentationObjects; using Ringtoets.Integration.Plugin.FileImporters; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Data.Probabilistics; using Ringtoets.Piping.Forms.PresentationObjects; using Ringtoets.Piping.Plugin.FileImporter; @@ -119,8 +120,12 @@ } var calculation = pipingFailureMechanism.CalculationsGroup.GetPipingCalculations().First(); - calculation.InputParameters.PhreaticLevelExit.Mean = (RoundedDouble) 3; - calculation.InputParameters.PhreaticLevelExit = calculation.InputParameters.PhreaticLevelExit; + var originalPhreaticLevelExit = calculation.InputParameters.PhreaticLevelExit; + calculation.InputParameters.PhreaticLevelExit = new NormalDistribution(originalPhreaticLevelExit.Mean.NumberOfDecimalPlaces) + { + Mean = (RoundedDouble) 3.0, + StandardDeviation = originalPhreaticLevelExit.StandardDeviation + }; calculation.InputParameters.SurfaceLine = pipingFailureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001"); calculation.InputParameters.SoilProfile = pipingFailureMechanism.SoilProfiles.First(sp => sp.Name == "W1-6_0_1D1"); calculation.InputParameters.HydraulicBoundaryLocation = demoAssessmentSection.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001); Index: Ringtoets.sln =================================================================== diff -u -rbd3d9017ec57de410afdb274e44cd933d670ce86 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets.sln (.../Ringtoets.sln) (revision bd3d9017ec57de410afdb274e44cd933d670ce86) +++ Ringtoets.sln (.../Ringtoets.sln) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -283,10 +283,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ringtoets.Piping.InputParameterCalculation.Test", "Ringtoets\Piping\test\Ringtoets.Piping.InputParameterCalculation.Test\Ringtoets.Piping.InputParameterCalculation.Test.csproj", "{74E55618-31E4-429A-81FB-30C16C4891ED}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ringtoets.Piping.InputParameterCalculation.TestUtil", "Ringtoets\Piping\test\Ringtoets.Piping.InputParameterCalculation.TestUtil\Ringtoets.Piping.InputParameterCalculation.TestUtil.csproj", "{DAE86782-E531-42C1-88B2-E0DFED7FCFC9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ringtoets.Piping.InputParameterCalculation.TestUtil.Test", "Ringtoets\Piping\test\Ringtoets.Piping.InputParameterCalculation.TestUtil.Test\Ringtoets.Piping.InputParameterCalculation.TestUtil.Test.csproj", "{81ADD2CC-0664-4827-9D91-9D7A5221364F}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CreateInstaller|x86 = CreateInstaller|x86 @@ -1120,22 +1116,6 @@ {74E55618-31E4-429A-81FB-30C16C4891ED}.Release|x86.Build.0 = Release|x86 {74E55618-31E4-429A-81FB-30C16C4891ED}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86 {74E55618-31E4-429A-81FB-30C16C4891ED}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.CreateInstaller|x86.ActiveCfg = Release|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.CreateInstallerWithDemoProject|x86.ActiveCfg = Release|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.Debug|x86.ActiveCfg = Debug|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.Debug|x86.Build.0 = Debug|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.Release|x86.ActiveCfg = Release|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.Release|x86.Build.0 = Release|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86 - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.CreateInstaller|x86.ActiveCfg = Release|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.CreateInstallerWithDemoProject|x86.ActiveCfg = Release|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.Debug|x86.ActiveCfg = Debug|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.Debug|x86.Build.0 = Debug|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.Release|x86.ActiveCfg = Release|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.Release|x86.Build.0 = Release|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86 - {81ADD2CC-0664-4827-9D91-9D7A5221364F}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1214,8 +1194,6 @@ {63EAAA8C-51FE-48E1-81A5-753FB4A47898} = {1F0D20C2-7F04-431D-AF22-95A31FD53733} {9FA83BA2-249B-4A66-A501-1C3DA07F8F86} = {1F0D20C2-7F04-431D-AF22-95A31FD53733} {74E55618-31E4-429A-81FB-30C16C4891ED} = {1F0D20C2-7F04-431D-AF22-95A31FD53733} - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9} = {1F0D20C2-7F04-431D-AF22-95A31FD53733} - {81ADD2CC-0664-4827-9D91-9D7A5221364F} = {1F0D20C2-7F04-431D-AF22-95A31FD53733} {4A7D6720-4AA1-4F0B-A796-A0436DB3D7D7} = {39EB5D07-C076-484C-9621-B34C4E5BF64C} {3CCB05DB-C7B3-4EF7-B41D-22B6D2A3774E} = {39EB5D07-C076-484C-9621-B34C4E5BF64C} {50963F12-448C-41BA-A62C-CDB0AB8D21E0} = {39EB5D07-C076-484C-9621-B34C4E5BF64C} Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs =================================================================== diff -u -r1e49eb86c81e8446aeb6031cfd7a209bb0c11bac -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 1e49eb86c81e8446aeb6031cfd7a209bb0c11bac) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -219,7 +219,7 @@ { return assessmentLevel; } - set + internal set { assessmentLevel = value.ToPrecision(assessmentLevel.NumberOfDecimalPlaces); } @@ -235,7 +235,7 @@ { return piezometricHeadExit; } - set + internal set { piezometricHeadExit = value.ToPrecision(piezometricHeadExit.NumberOfDecimalPlaces); } Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInputSynchronizer.cs =================================================================== diff -u -r1e49eb86c81e8446aeb6031cfd7a209bb0c11bac -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInputSynchronizer.cs (.../PipingInputSynchronizer.cs) (revision 1e49eb86c81e8446aeb6031cfd7a209bb0c11bac) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInputSynchronizer.cs (.../PipingInputSynchronizer.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -19,7 +19,7 @@ private readonly PipingInput input; /// - /// Creates a new instance of . + /// Creates a new instance of . /// /// The input to synchronize the values for. internal PipingInputSynchronizer(PipingInput input) Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs =================================================================== diff -u -rd82fa09fe9ae053ce7702ba89ef23ae029640d1b -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision d82fa09fe9ae053ce7702ba89ef23ae029640d1b) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -43,9 +43,6 @@ { #region Model Settings - /// - /// Gets or sets the design variable for . - /// [TypeConverter(typeof(LognormalDistributionDesignVariableTypeConverter))] [ResourcesCategory(typeof(Resources), "Categories_ModelSettings")] [ResourcesDisplayName(typeof(Resources), "PipingInput_DampingFactorExit_DisplayName")] @@ -91,9 +88,6 @@ #region Hydraulic data - /// - /// Gets or sets the . - /// [Editor(typeof(PipingInputContextHydraulicBoundaryLocationEditor), typeof(UITypeEditor))] [ResourcesCategory(typeof(Resources), "Categories_HydraulicData")] [ResourcesDisplayName(typeof(Resources), "PipingInput_HydraulicBoundaryLocation_DisplayName")] @@ -111,9 +105,6 @@ } } - /// - /// Gets the assessment level. - /// [ResourcesCategory(typeof(Resources), "Categories_HydraulicData")] [ResourcesDisplayName(typeof(Resources), "PipingInput_AssessmentLevel_DisplayName")] [ResourcesDescription(typeof(Resources), "PipingInput_AssessmentLevel_Description")] @@ -125,9 +116,6 @@ } } - /// - /// Gets the piezometric head at the exit point. - /// [ResourcesCategory(typeof(Resources), "Categories_HydraulicData")] [ResourcesDisplayName(typeof(Resources), "PipingInput_PiezometricHeadExit_DisplayName")] [ResourcesDescription(typeof(Resources), "PipingInput_PiezometricHeadExit_Description")] @@ -139,9 +127,6 @@ } } - /// - /// Gets or sets the design variable for . - /// [TypeConverter(typeof(NormalDistributionDesignVariableTypeConverter))] [ResourcesCategory(typeof(Resources), "Categories_HydraulicData")] [ResourcesDisplayName(typeof(Resources), "PipingInput_PhreaticLevelExit_DisplayName")] @@ -163,9 +148,6 @@ #region Schematization - /// - /// Gets or sets the . - /// [Editor(typeof(PipingInputContextSurfaceLineSelectionEditor), typeof(UITypeEditor))] [ResourcesCategory(typeof(Resources), "Categories_Schematization")] [ResourcesDisplayName(typeof(Resources), "PipingInput_SurfaceLine_DisplayName")] @@ -183,9 +165,6 @@ } } - /// - /// Gets or sets the . - /// [Editor(typeof(PipingInputContextSoilProfileSelectionEditor), typeof(UITypeEditor))] [ResourcesCategory(typeof(Resources), "Categories_Schematization")] [ResourcesDisplayName(typeof(Resources), "PipingInput_SoilProfile_DisplayName")] @@ -203,9 +182,6 @@ } } - /// - /// Gets or sets the l-coordinate of the entry point. - /// [ResourcesCategory(typeof(Resources), "Categories_Schematization")] [ResourcesDisplayName(typeof(Resources), "PipingInput_EntryPointL_DisplayName")] [ResourcesDescription(typeof(Resources), "PipingInput_EntryPointL_Description")] @@ -222,9 +198,6 @@ } } - /// - /// Gets or sets the l-coordinate of the exit point. - /// [ResourcesCategory(typeof(Resources), "Categories_Schematization")] [ResourcesDisplayName(typeof(Resources), "PipingInput_ExitPointL_DisplayName")] [ResourcesDescription(typeof(Resources), "PipingInput_ExitPointL_Description")] @@ -241,9 +214,6 @@ } } - /// - /// Gets or sets the design variable for . - /// [TypeConverter(typeof(LognormalDistributionDesignVariableTypeConverter))] [ResourcesCategory(typeof(Resources), "Categories_Schematization")] [ResourcesDisplayName(typeof(Resources), "PipingInput_SeepageLength_DisplayName")] @@ -256,9 +226,6 @@ } } - /// - /// Gets or sets the design variable for . - /// [TypeConverter(typeof(LognormalDistributionDesignVariableTypeConverter))] [ResourcesCategory(typeof(Resources), "Categories_Schematization")] [ResourcesDisplayName(typeof(Resources), "PipingInput_ThicknessCoverageLayer_DisplayName")] @@ -271,9 +238,6 @@ } } - /// - /// Gets or sets the design variable for . - /// [TypeConverter(typeof(LognormalDistributionDesignVariableTypeConverter))] [ResourcesCategory(typeof(Resources), "Categories_Schematization")] [ResourcesDisplayName(typeof(Resources), "PipingInput_ThicknessAquiferLayer_DisplayName")] @@ -290,9 +254,6 @@ #region Soil Properties - /// - /// Gets or sets the design variable for . - /// [TypeConverter(typeof(LognormalDistributionDesignVariableTypeConverter))] [ResourcesCategory(typeof(Resources), "Categories_SoilProperties")] [ResourcesDisplayName(typeof(Resources), "PipingInput_DarcyPermeability_DisplayName")] @@ -310,9 +271,6 @@ } } - /// - /// Gets or sets the design variable for . - /// [TypeConverter(typeof(LognormalDistributionDesignVariableTypeConverter))] [ResourcesCategory(typeof(Resources), "Categories_SoilProperties")] [ResourcesDisplayName(typeof(Resources), "PipingInput_Diameter70_DisplayName")] Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/TypeConverters/PropertyDescriptors/ContainingPropertyUpdateDescriptorDecorator.cs =================================================================== diff -u -r76fb25cd2af6a3451ffe32852cc34e13e1925b14 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/TypeConverters/PropertyDescriptors/ContainingPropertyUpdateDescriptorDecorator.cs (.../ContainingPropertyUpdateDescriptorDecorator.cs) (revision 76fb25cd2af6a3451ffe32852cc34e13e1925b14) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/TypeConverters/PropertyDescriptors/ContainingPropertyUpdateDescriptorDecorator.cs (.../ContainingPropertyUpdateDescriptorDecorator.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -4,9 +4,11 @@ namespace Ringtoets.Piping.Forms.TypeConverters.PropertyDescriptors { /// - /// Decorates a to also set the property of the containing - /// object with the updated component. + /// Decorates a PropertyDescriptor with an override for SetValue to have the property exposing the + /// owner of the property, captured by the PropertyDescriptor, set to that owner's instance as well. /// + /// Use this class for PropertyDescriptors that allows for changes to properties of a + /// considered composed part to also set a new value for the composite owner of that part. public class ContainingPropertyUpdateDescriptorDecorator : PropertyDescriptor { private readonly object source; @@ -18,8 +20,9 @@ /// /// The original property description. /// The source object, which contains the property described by . - /// The property which contains the - public ContainingPropertyUpdateDescriptorDecorator(PropertyDescriptor propertyDescription, object source, PropertyDescriptor containingProperty) : base(propertyDescription) + /// The property which contains the source of the . + public ContainingPropertyUpdateDescriptorDecorator(PropertyDescriptor propertyDescription, object source, PropertyDescriptor containingProperty) + : base(propertyDescription) { this.source = source; sourceContainingProperty = containingProperty; Index: Ringtoets/Piping/src/Ringtoets.Piping.InputParameterCalculation/InputParameterCalculationService.cs =================================================================== diff -u -r10779bb6a6db2d00f4627b2bc190e7e35e1fee3e -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/src/Ringtoets.Piping.InputParameterCalculation/InputParameterCalculationService.cs (.../InputParameterCalculationService.cs) (revision 10779bb6a6db2d00f4627b2bc190e7e35e1fee3e) +++ Ringtoets/Piping/src/Ringtoets.Piping.InputParameterCalculation/InputParameterCalculationService.cs (.../InputParameterCalculationService.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -27,16 +27,14 @@ namespace Ringtoets.Piping.InputParameterCalculation { + /// + /// This class can be used to calculate input parameters for a piping calculation based on other input parameters. + /// public static class InputParameterCalculationService { /// - /// The to use for creating piping sub calculators. + /// Calculates the thickness of the coverage layer based on the values of partial piping input. /// - public static IPipingSubCalculatorFactory SubCalculatorFactory = new PipingSubCalculatorFactory(); - - /// - /// Calculates the thickness of the coverage layer based on the values of the . - /// /// The volumetric weight of water. /// The design value of the phreatic level at the exit point. /// The l-coordinate of the exit point. @@ -73,7 +71,7 @@ surfaceLine, soilProfile ); - return new PipingCalculator(calculatorInput, SubCalculatorFactory).CalculateThicknessCoverageLayer(); + return new PipingCalculator(calculatorInput, PipingSubCalculatorFactory.Instance).CalculateThicknessCoverageLayer(); } catch (PipingCalculatorException) { @@ -82,7 +80,7 @@ } /// - /// Calculates the piezometric head at the exit point based on the values of the . + /// Calculates the piezometric head at the exit point based on the values of partial piping input. /// /// The assessment level. /// The design value of the damping factor at exit point. @@ -116,7 +114,7 @@ null, null ); - return new PipingCalculator(calculatorInput, SubCalculatorFactory).CalculatePiezometricHeadAtExit(); + return new PipingCalculator(calculatorInput, PipingSubCalculatorFactory.Instance).CalculatePiezometricHeadAtExit(); } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.KernelWrapper/SubCalculator/PipingSubCalculatorFactory.cs =================================================================== diff -u -r89488cc05b12fd5720cd28a4eeeb001dc9b1456d -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/src/Ringtoets.Piping.KernelWrapper/SubCalculator/PipingSubCalculatorFactory.cs (.../PipingSubCalculatorFactory.cs) (revision 89488cc05b12fd5720cd28a4eeeb001dc9b1456d) +++ Ringtoets/Piping/src/Ringtoets.Piping.KernelWrapper/SubCalculator/PipingSubCalculatorFactory.cs (.../PipingSubCalculatorFactory.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -26,6 +26,29 @@ /// public class PipingSubCalculatorFactory : IPipingSubCalculatorFactory { + private static IPipingSubCalculatorFactory instance; + + internal PipingSubCalculatorFactory() {} + + /// + /// Gets or sets an instance of . + /// + public static IPipingSubCalculatorFactory Instance + { + get + { + if (instance == null) + { + instance = new PipingSubCalculatorFactory(); + } + return instance; + } + set + { + instance = value; + } + } + public IUpliftCalculator CreateUpliftCalculator() { return new UpliftCalculator(); Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs =================================================================== diff -u -rbd3d9017ec57de410afdb274e44cd933d670ce86 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (.../PipingCalculationService.cs) (revision bd3d9017ec57de410afdb274e44cd933d670ce86) +++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (.../PipingCalculationService.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -39,11 +39,6 @@ private static readonly ILog pipingCalculationLogger = LogManager.GetLogger(typeof(PipingCalculation)); /// - /// The to use for creating piping sub calculators. - /// - public static IPipingSubCalculatorFactory SubCalculatorFactory = new PipingSubCalculatorFactory(); - - /// /// Performs validation over the values on the given . Error and status information is logged during /// the execution of the operation. /// @@ -54,7 +49,7 @@ pipingCalculationLogger.Info(String.Format(Resources.Validation_Subject_0_started_Time_1_, calculation.Name, DateTimeService.CurrentTimeAsString)); - var validationResults = new PipingCalculator(CreateInputFromData(calculation.InputParameters), SubCalculatorFactory).Validate(); + var validationResults = new PipingCalculator(CreateInputFromData(calculation.InputParameters), PipingSubCalculatorFactory.Instance).Validate(); LogMessagesAsError(Resources.Error_in_piping_validation_0, validationResults.ToArray()); pipingCalculationLogger.Info(String.Format(Resources.Validation_Subject_0_ended_Time_1_, @@ -77,7 +72,7 @@ try { - var pipingResult = new PipingCalculator(CreateInputFromData(calculation.InputParameters), SubCalculatorFactory).Calculate(); + var pipingResult = new PipingCalculator(CreateInputFromData(calculation.InputParameters), PipingSubCalculatorFactory.Instance).Calculate(); calculation.Output = new PipingOutput(pipingResult.UpliftZValue, pipingResult.UpliftFactorOfSafety, Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputSynchronizerTest.cs =================================================================== diff -u -r1e49eb86c81e8446aeb6031cfd7a209bb0c11bac -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputSynchronizerTest.cs (.../PipingInputSynchronizerTest.cs) (revision 1e49eb86c81e8446aeb6031cfd7a209bb0c11bac) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputSynchronizerTest.cs (.../PipingInputSynchronizerTest.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -6,9 +6,10 @@ using Ringtoets.HydraRing.Data; using Ringtoets.Piping.Data.Properties; using Ringtoets.Piping.InputParameterCalculation; -using Ringtoets.Piping.InputParameterCalculation.TestUtil; +using Ringtoets.Piping.KernelWrapper.SubCalculator; using Ringtoets.Piping.KernelWrapper.TestUtil.SubCalculator; using Ringtoets.Piping.Primitives; +using Ringtoets.Piping.Service.TestUtil; namespace Ringtoets.Piping.Data.Test { @@ -82,7 +83,7 @@ var input = new PipingInput(new GeneralPipingInput()); var synchronizer = new PipingInputSynchronizer(input); - using (new InputParameterCalculationServiceConfig()) + using (new PipingSubCalculatorFactoryConfig()) { // Call synchronizer.Synchronize(); @@ -92,7 +93,7 @@ Assert.AreEqual(2, result.NumberOfDecimalPlaces); Assert.IsFalse(double.IsNaN(result)); - var factory = (TestPipingSubCalculatorFactory)InputParameterCalculationService.SubCalculatorFactory; + var factory = (TestPipingSubCalculatorFactory)PipingSubCalculatorFactory.Instance; var piezometricHeadAtExitCalculator = factory.LastCreatedPiezometricHeadAtExitCalculator; Assert.AreEqual(input.AssessmentLevel.Value, piezometricHeadAtExitCalculator.HRiver); Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj =================================================================== diff -u -r10779bb6a6db2d00f4627b2bc190e7e35e1fee3e -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 10779bb6a6db2d00f4627b2bc190e7e35e1fee3e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -120,10 +120,6 @@ {14C6F716-64E2-4BC4-A1EF-05865FCEFA4C} Ringtoets.Piping.Primitives - - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9} - Ringtoets.Piping.InputParameterCalculation.TestUtil - {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8} Ringtoets.Piping.KernelWrapper.TestUtil @@ -132,6 +128,10 @@ {955E574D-67CE-4347-AA6B-7DF8A04ED754} Ringtoets.Piping.Data.TestUtil + + {C05B4F73-480E-46A4-B037-40954F8276DC} + Ringtoets.Piping.Service.TestUtil + Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs =================================================================== diff -u -r10779bb6a6db2d00f4627b2bc190e7e35e1fee3e -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs (.../PipingCalculationFactory.cs) (revision 10779bb6a6db2d00f4627b2bc190e7e35e1fee3e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs (.../PipingCalculationFactory.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -84,7 +84,6 @@ { Mean = (RoundedDouble) 1.0 }, - PiezometricHeadExit = (RoundedDouble) 2.1, SurfaceLine = surfaceLine, SoilProfile = soilProfile, HydraulicBoundaryLocation = hydraulicBoundaryLocation Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs =================================================================== diff -u -r10779bb6a6db2d00f4627b2bc190e7e35e1fee3e -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision 10779bb6a6db2d00f4627b2bc190e7e35e1fee3e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -448,7 +448,6 @@ Enumerable.Empty(), assessmentSectionMock) }; - inputParameters.PiezometricHeadExit = (RoundedDouble) double.NaN; inputParameters.HydraulicBoundaryLocation = new HydraulicBoundaryLocation(0, string.Empty, 0, 0) { DesignWaterLevel = 1.0 Index: Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.Test/InputParameterCalculationServiceTest.cs =================================================================== diff -u -r10779bb6a6db2d00f4627b2bc190e7e35e1fee3e -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.Test/InputParameterCalculationServiceTest.cs (.../InputParameterCalculationServiceTest.cs) (revision 10779bb6a6db2d00f4627b2bc190e7e35e1fee3e) +++ Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.Test/InputParameterCalculationServiceTest.cs (.../InputParameterCalculationServiceTest.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -4,11 +4,13 @@ using Core.Common.Base.Geometry; using Deltares.WTIPiping; using NUnit.Framework; +using Ringtoets.HydraRing.Data; using Ringtoets.Piping.Data; using Ringtoets.Piping.Data.TestUtil; -using Ringtoets.Piping.InputParameterCalculation.TestUtil; +using Ringtoets.Piping.KernelWrapper.SubCalculator; using Ringtoets.Piping.KernelWrapper.TestUtil.SubCalculator; using Ringtoets.Piping.Primitives; +using Ringtoets.Piping.Service.TestUtil; namespace Ringtoets.Piping.InputParameterCalculation.Test { @@ -72,7 +74,12 @@ }; // Call - var thickness = InputParameterCalculationService.CalculateThicknessCoverageLayer(input.WaterVolumetricWeight, PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), input.ExitPointL, input.SurfaceLine, input.SoilProfile); + var thickness = InputParameterCalculationService.CalculateThicknessCoverageLayer( + input.WaterVolumetricWeight, + PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), + input.ExitPointL, + input.SurfaceLine, + input.SoilProfile); // Assert Assert.AreEqual(5, thickness); @@ -84,11 +91,17 @@ // Setup PipingInput input = new PipingInput(new GeneralPipingInput()) { - AssessmentLevel = (RoundedDouble) 0.0 + HydraulicBoundaryLocation = new HydraulicBoundaryLocation(0, String.Empty, 0, 0) + { + DesignWaterLevel = (RoundedDouble)0.0 + } }; // Call - var result = InputParameterCalculationService.CalculatePiezometricHeadAtExit(input.AssessmentLevel, PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue()); + var result = InputParameterCalculationService.CalculatePiezometricHeadAtExit( + input.AssessmentLevel, + PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), + PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue()); // Assert Assert.IsFalse(Double.IsNaN(result)); @@ -101,19 +114,26 @@ PipingCalculation validPipingCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); PipingInput input = validPipingCalculation.InputParameters; - using (new InputParameterCalculationServiceConfig()) + using (new PipingSubCalculatorFactoryConfig()) { // Call - PipingInput input1 = validPipingCalculation.InputParameters; - InputParameterCalculationService.CalculateThicknessCoverageLayer(input1.WaterVolumetricWeight, PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input1).GetDesignValue(), input1.ExitPointL, input1.SurfaceLine, input1.SoilProfile); + PipingInput inputParameters = validPipingCalculation.InputParameters; + InputParameterCalculationService.CalculateThicknessCoverageLayer( + inputParameters.WaterVolumetricWeight, + PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(inputParameters).GetDesignValue(), + inputParameters.ExitPointL, + inputParameters.SurfaceLine, + inputParameters.SoilProfile); // Assert - var testFactory = (TestPipingSubCalculatorFactory)InputParameterCalculationService.SubCalculatorFactory; + var testFactory = (TestPipingSubCalculatorFactory)PipingSubCalculatorFactory.Instance; var effectiveThicknessCalculator = testFactory.LastCreatedEffectiveThicknessCalculator; Assert.AreEqual(input.ExitPointL.Value, effectiveThicknessCalculator.ExitPointXCoordinate); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), effectiveThicknessCalculator.PhreaticLevel, - Math.Pow(10.0, -input.PhreaticLevelExit.Mean.NumberOfDecimalPlaces)); + Assert.AreEqual( + PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), + effectiveThicknessCalculator.PhreaticLevel, + GetAccuracy(input.PhreaticLevelExit.Mean)); AssertEqualSoilProfiles(input.SoilProfile, effectiveThicknessCalculator.SoilProfile); AssertEqualSurfaceLines(input.SurfaceLine, effectiveThicknessCalculator.SurfaceLine); Assert.AreEqual(input.WaterVolumetricWeight, effectiveThicknessCalculator.VolumicWeightOfWater); @@ -127,14 +147,17 @@ PipingCalculation validPipingCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); PipingInput input = validPipingCalculation.InputParameters; - using (new InputParameterCalculationServiceConfig()) + using (new PipingSubCalculatorFactoryConfig()) { // Call PipingInput input1 = validPipingCalculation.InputParameters; - InputParameterCalculationService.CalculatePiezometricHeadAtExit(input1.AssessmentLevel, PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input1).GetDesignValue(), PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input1).GetDesignValue()); + InputParameterCalculationService.CalculatePiezometricHeadAtExit( + input1.AssessmentLevel, + PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input1).GetDesignValue(), + PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input1).GetDesignValue()); // Assert - var testFactory = (TestPipingSubCalculatorFactory)InputParameterCalculationService.SubCalculatorFactory; + var testFactory = (TestPipingSubCalculatorFactory)PipingSubCalculatorFactory.Instance; var piezometricHeadAtExitCalculator = testFactory.LastCreatedPiezometricHeadAtExitCalculator; Assert.AreEqual(input.AssessmentLevel.Value, piezometricHeadAtExitCalculator.HRiver); Index: Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.Test/Ringtoets.Piping.InputParameterCalculation.Test.csproj =================================================================== diff -u -r4bcc6d736cb6d6736eb8ab532f19ceb3477bd586 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.Test/Ringtoets.Piping.InputParameterCalculation.Test.csproj (.../Ringtoets.Piping.InputParameterCalculation.Test.csproj) (revision 4bcc6d736cb6d6736eb8ab532f19ceb3477bd586) +++ Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.Test/Ringtoets.Piping.InputParameterCalculation.Test.csproj (.../Ringtoets.Piping.InputParameterCalculation.Test.csproj) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -68,6 +68,10 @@ {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data + + {70f8cc9c-5bc8-4fb2-b201-eae7fa8088c2} + Ringtoets.HydraRing.Data + {ce994cc9-6f6a-48ac-b4be-02c30a21f4db} Ringtoets.Piping.Data @@ -88,10 +92,6 @@ {955E574D-67CE-4347-AA6B-7DF8A04ED754} Ringtoets.Piping.Data.TestUtil - - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9} - Ringtoets.Piping.InputParameterCalculation.TestUtil - {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8} Ringtoets.Piping.KernelWrapper.TestUtil Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.TestUtil.Test/InputParameterCalculationServiceConfigTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.TestUtil.Test/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.TestUtil.Test/Ringtoets.Piping.InputParameterCalculation.TestUtil.Test.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.TestUtil.Test/packages.config'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.TestUtil/InputParameterCalculationServiceConfig.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.TestUtil/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.InputParameterCalculation.TestUtil/Ringtoets.Piping.InputParameterCalculation.TestUtil.csproj'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.KernelWrapper.Test/PipingCalculatorTest.cs =================================================================== diff -u -r10779bb6a6db2d00f4627b2bc190e7e35e1fee3e -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.KernelWrapper.Test/PipingCalculatorTest.cs (.../PipingCalculatorTest.cs) (revision 10779bb6a6db2d00f4627b2bc190e7e35e1fee3e) +++ Ringtoets/Piping/test/Ringtoets.Piping.KernelWrapper.Test/PipingCalculatorTest.cs (.../PipingCalculatorTest.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -42,7 +42,7 @@ PipingCalculatorInput input = new TestPipingInput().AsRealInput(); // Call - PipingCalculatorResult actual = new PipingCalculator(input, new PipingSubCalculatorFactory()).Calculate(); + PipingCalculatorResult actual = new PipingCalculator(input, PipingSubCalculatorFactory.Instance).Calculate(); // Assert Assert.IsNotNull(actual); @@ -59,7 +59,7 @@ { // Setup PipingCalculatorInput input = new TestPipingInput().AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -80,7 +80,7 @@ SeepageLength = seepageLength }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -102,7 +102,7 @@ ThicknessAquiferLayer = aquiferThickness }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -123,7 +123,7 @@ BeddingAngle = beddingAngle }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -145,7 +145,7 @@ PiezometricHeadExit = (RoundedDouble)level }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -166,7 +166,7 @@ DampingFactorExit = 0 }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -185,7 +185,7 @@ ThicknessCoverageLayer = 0 }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -204,7 +204,7 @@ ThicknessAquiferLayer = 0 }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -223,7 +223,7 @@ WaterVolumetricWeight = 0 }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -249,7 +249,7 @@ ThicknessCoverageLayer = thicknessCoverageLayer }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -268,7 +268,7 @@ SurfaceLine = null, }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -287,7 +287,7 @@ SoilProfile = null, }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -312,7 +312,7 @@ }, 0) }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call List validationMessages = calculation.Validate(); @@ -335,7 +335,7 @@ }, 0) }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call TestDelegate call = () => calculation.CalculateThicknessCoverageLayer(); @@ -351,7 +351,7 @@ // Setup PipingCalculatorInput input = new TestPipingInput().AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call var result = calculation.CalculateThicknessCoverageLayer(); @@ -372,7 +372,7 @@ new Point3D(2, 0, -1) }); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call var result = calculation.CalculateThicknessCoverageLayer(); @@ -390,7 +390,7 @@ ExitPointXCoordinate = (RoundedDouble)2.1 }.AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call var result = calculation.CalculateThicknessCoverageLayer(); @@ -405,7 +405,7 @@ // Setup PipingCalculatorInput input = new TestPipingInput().AsRealInput(); - var calculation = new PipingCalculator(input, new PipingSubCalculatorFactory()); + var calculation = new PipingCalculator(input, PipingSubCalculatorFactory.Instance); // Call var result = calculation.CalculatePiezometricHeadAtExit(); Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs =================================================================== diff -u -rbd3d9017ec57de410afdb274e44cd933d670ce86 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision bd3d9017ec57de410afdb274e44cd933d670ce86) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -7,6 +7,7 @@ using NUnit.Framework; using Ringtoets.Piping.Data; using Ringtoets.Piping.Data.TestUtil; +using Ringtoets.Piping.KernelWrapper.SubCalculator; using Ringtoets.Piping.KernelWrapper.TestUtil; using Ringtoets.Piping.KernelWrapper.TestUtil.SubCalculator; using Ringtoets.Piping.Service.TestUtil; @@ -121,7 +122,7 @@ PipingCalculation validPipingCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); PipingInput input = validPipingCalculation.InputParameters; - using (new PipingCalculationServiceConfig()) + using (new PipingSubCalculatorFactoryConfig()) { // Call PipingCalculationService.Validate(validPipingCalculation); @@ -138,7 +139,7 @@ PipingCalculation validPipingCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); PipingInput input = validPipingCalculation.InputParameters; - using (new PipingCalculationServiceConfig()) + using (new PipingSubCalculatorFactoryConfig()) { // Call PipingCalculationService.Calculate(validPipingCalculation); @@ -150,7 +151,7 @@ private void AssertSubCalculatorInputs(PipingInput input) { - var testFactory = (TestPipingSubCalculatorFactory) PipingCalculationService.SubCalculatorFactory; + var testFactory = (TestPipingSubCalculatorFactory)PipingSubCalculatorFactory.Instance; var heaveCalculator = testFactory.LastCreatedHeaveCalculator; var upliftCalculator = testFactory.LastCreatedUpliftCalculator; var sellmeijerCalculator = testFactory.LastCreatedSellmeijerCalculator; Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj =================================================================== diff -u -r10779bb6a6db2d00f4627b2bc190e7e35e1fee3e -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 10779bb6a6db2d00f4627b2bc190e7e35e1fee3e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -97,10 +97,6 @@ {CE994CC9-6F6A-48AC-B4BE-02C30A21F4DB} Ringtoets.Piping.Data - - {DAE86782-E531-42C1-88B2-E0DFED7FCFC9} - Ringtoets.Piping.InputParameterCalculation.TestUtil - {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8} Ringtoets.Piping.KernelWrapper.TestUtil Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil.Test/PipingCalculationServiceConfigTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil.Test/PipingSubCalculatorFactoryConfigTest.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil.Test/PipingSubCalculatorFactoryConfigTest.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil.Test/PipingSubCalculatorFactoryConfigTest.cs (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -0,0 +1,46 @@ +using System; +using NUnit.Framework; +using Ringtoets.Piping.KernelWrapper.SubCalculator; +using Ringtoets.Piping.KernelWrapper.TestUtil.SubCalculator; + +namespace Ringtoets.Piping.Service.TestUtil.Test +{ + [TestFixture] + public class PipingSubCalculatorFactoryConfigTest + { + [Test] + public void Constructor_NewInstanceCanBeDisposed() + { + // Call + var factory = new PipingSubCalculatorFactoryConfig(); + + // Assert + Assert.IsInstanceOf(factory); + Assert.DoesNotThrow(() => factory.Dispose()); + } + + [Test] + public void Constructor_SetsTestFactoryForPipingCalculatorService() + { + // Call + using (new PipingSubCalculatorFactoryConfig()) + { + // Assert + Assert.IsInstanceOf(PipingSubCalculatorFactory.Instance); + } + } + + [Test] + public void Dispose_Always_ResetsFactoryToPreviousValue() + { + // Setup + var expectedFactory = PipingSubCalculatorFactory.Instance; + + // Call + using (new PipingSubCalculatorFactoryConfig()) { } + + // Assert + Assert.AreSame(expectedFactory, PipingSubCalculatorFactory.Instance); + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil.Test/Ringtoets.Piping.Service.TestUtil.Test.csproj =================================================================== diff -u -rc2fe76d04e1517a4e0aaf62184bccd413de0e472 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil.Test/Ringtoets.Piping.Service.TestUtil.Test.csproj (.../Ringtoets.Piping.Service.TestUtil.Test.csproj) (revision c2fe76d04e1517a4e0aaf62184bccd413de0e472) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil.Test/Ringtoets.Piping.Service.TestUtil.Test.csproj (.../Ringtoets.Piping.Service.TestUtil.Test.csproj) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -45,7 +45,7 @@ - + Fisheye: Tag 0adc6562a9cedb81859034ef5d62e9b11db4d9c7 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil/PipingCalculationServiceConfig.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil/PipingSubCalculatorFactoryConfig.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil/PipingSubCalculatorFactoryConfig.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil/PipingSubCalculatorFactoryConfig.cs (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -0,0 +1,47 @@ +using System; +using Ringtoets.Piping.KernelWrapper.SubCalculator; +using Ringtoets.Piping.KernelWrapper.TestUtil.SubCalculator; + +namespace Ringtoets.Piping.Service.TestUtil +{ + /// + /// This class can be used to set a temporary + /// for while testing. + /// Disposing an instance of this class will revert the + /// . + /// + /// + /// The following is an example for how to use this class: + /// + /// using(new PipingCalculationServiceConfig()) { + /// var testFactory = (TestPipingSubCalculatorFactory) PipingCalculationService.SubCalculatorFactory; + /// + /// // Perform tests with testFactory + /// } + /// + /// + public class PipingSubCalculatorFactoryConfig : IDisposable + { + private readonly IPipingSubCalculatorFactory previousFactory; + + /// + /// Creates a new instance of . + /// Sets a to + /// + /// + public PipingSubCalculatorFactoryConfig() + { + previousFactory = PipingSubCalculatorFactory.Instance; + PipingSubCalculatorFactory.Instance = new TestPipingSubCalculatorFactory(); + } + + /// + /// Reverts the to the value + /// it had at time of construction of the . + /// + public void Dispose() + { + PipingSubCalculatorFactory.Instance = previousFactory; + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil/Ringtoets.Piping.Service.TestUtil.csproj =================================================================== diff -u -rc2fe76d04e1517a4e0aaf62184bccd413de0e472 -r0adc6562a9cedb81859034ef5d62e9b11db4d9c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil/Ringtoets.Piping.Service.TestUtil.csproj (.../Ringtoets.Piping.Service.TestUtil.csproj) (revision c2fe76d04e1517a4e0aaf62184bccd413de0e472) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.TestUtil/Ringtoets.Piping.Service.TestUtil.csproj (.../Ringtoets.Piping.Service.TestUtil.csproj) (revision 0adc6562a9cedb81859034ef5d62e9b11db4d9c7) @@ -46,7 +46,7 @@ - +