Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PresentationObjects/PipingInputContext.cs
===================================================================
diff -u -rd515de49557312e4af41b1c051c900d39d1f9e2f -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PresentationObjects/PipingInputContext.cs (.../PipingInputContext.cs) (revision d515de49557312e4af41b1c051c900d39d1f9e2f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PresentationObjects/PipingInputContext.cs (.../PipingInputContext.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -19,9 +19,12 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.Collections.Generic;
using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Piping.Data;
+using Ringtoets.Piping.Forms.Properties;
using Ringtoets.Piping.Primitives;
namespace Ringtoets.Piping.Forms.PresentationObjects
@@ -37,11 +40,47 @@
/// Creates a new instance of
///
/// The piping input instance wrapped by this context object.
+ /// The piping calculation item the belongs to.
/// The surface lines available within the piping context.
/// The stochastic soil models available within the piping context.
+ /// The failure mechanism which the piping context belongs to.
/// The assessment section which the piping context belongs to.
- /// When any input parameter is null.
- public PipingInputContext(PipingInput pipingInput, IEnumerable surfaceLines, IEnumerable stochasticSoilModels, IAssessmentSection assessmentSection)
- : base(pipingInput, surfaceLines, stochasticSoilModels, assessmentSection) {}
+ /// When any input parameter is null.
+ public PipingInputContext(PipingInput pipingInput,
+ IPipingCalculationItem pipingCalculationItem,
+ IEnumerable surfaceLines,
+ IEnumerable stochasticSoilModels,
+ PipingFailureMechanism pipingFailureMechanism,
+ IAssessmentSection assessmentSection)
+ : base(pipingInput, surfaceLines, stochasticSoilModels, assessmentSection)
+ {
+ if (pipingCalculationItem == null)
+ {
+ var message = String.Format(Resources.PipingContext_AssertInputsAreNotNull_DataDescription_0_cannot_be_null,
+ Resources.PipingContext_DataDescription_PipingCalculationItem);
+
+ throw new ArgumentNullException("pipingCalculationItem", message);
+ }
+ if (pipingFailureMechanism == null)
+ {
+ var message = String.Format(Resources.PipingContext_AssertInputsAreNotNull_DataDescription_0_cannot_be_null,
+ Resources.PipingContext_DataDescription_PipingFailureMechanism);
+
+ throw new ArgumentNullException("pipingFailureMechanism", message);
+ }
+
+ PipingCalculationItem = pipingCalculationItem;
+ PipingFailureMechanism = pipingFailureMechanism;
+ }
+
+ ///
+ /// Gets the calculation item which the piping context belongs to.
+ ///
+ public IPipingCalculationItem PipingCalculationItem { get; private set; }
+
+ ///
+ /// Gets the failure mechanism which the piping context belongs to.
+ ///
+ public PipingFailureMechanism PipingFailureMechanism { get; private set; }
}
}
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs
===================================================================
diff -u -r3cf7cee528e08dbf46d6a2c08e0fbe4416059e0c -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 3cf7cee528e08dbf46d6a2c08e0fbe4416059e0c)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -807,6 +807,15 @@
}
///
+ /// Looks up a localized string similar to De berekening.
+ ///
+ public static string PipingContext_DataDescription_PipingCalculationItem {
+ get {
+ return ResourceManager.GetString("PipingContext_DataDescription_PipingCalculationItem", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Het piping faalmechanisme.
///
public static string PipingContext_DataDescription_PipingFailureMechanism {
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx
===================================================================
diff -u -r3cf7cee528e08dbf46d6a2c08e0fbe4416059e0c -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision 3cf7cee528e08dbf46d6a2c08e0fbe4416059e0c)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -745,4 +745,7 @@
Stochastisch ondergrondmodellen
+
+ De berekening
+
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs
===================================================================
diff -u -rd515de49557312e4af41b1c051c900d39d1f9e2f -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision d515de49557312e4af41b1c051c900d39d1f9e2f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -171,8 +171,12 @@
{
if (!ReferenceEquals(value, data.WrappedData.SurfaceLine))
{
+ var oldSurfaceLine = data.WrappedData.SurfaceLine;
+
data.WrappedData.SurfaceLine = value;
PipingInputService.SetMatchingStochasticSoilModel(data.WrappedData, GetAvailableStochasticSoilModels());
+
+ PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine((PipingCalculationScenario)data.PipingCalculationItem, new PipingFailureMechanism(), oldSurfaceLine);
data.WrappedData.NotifyObservers();
}
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs
===================================================================
diff -u -r1279dcba187f56c0ba96dfdb962067304e333475 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 1279dcba187f56c0ba96dfdb962067304e333475)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -830,8 +830,10 @@
{
selection = new PipingInputContext(
pipingCalculationRow.PipingCalculation.InputParameters,
+ pipingCalculationRow.PipingCalculation,
pipingFailureMechanism.SurfaceLines,
pipingFailureMechanism.StochasticSoilModels,
+ pipingFailureMechanism,
assessmentSection);
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs
===================================================================
diff -u -r1279dcba187f56c0ba96dfdb962067304e333475 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 1279dcba187f56c0ba96dfdb962067304e333475)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -501,8 +501,10 @@
{
new CommentContext(pipingCalculationContext.WrappedData),
new PipingInputContext(pipingCalculationContext.WrappedData.InputParameters,
+ pipingCalculationContext.WrappedData,
pipingCalculationContext.AvailablePipingSurfaceLines,
pipingCalculationContext.AvailableStochasticSoilModels,
+ pipingCalculationContext.PipingFailureMechanism,
pipingCalculationContext.AssessmentSection)
};
Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationScenarioService.cs
===================================================================
diff -u
--- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationScenarioService.cs (revision 0)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationScenarioService.cs (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -0,0 +1,100 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using Core.Common.Base.Geometry;
+using Ringtoets.Common.Data.FailureMechanism;
+using Ringtoets.Piping.Data;
+using Ringtoets.Piping.Primitives;
+
+namespace Ringtoets.Piping.Service
+{
+ ///
+ /// Class responsible for piping calculation scenarios in sync.
+ ///
+ public static class PipingCalculationScenarioService
+ {
+ ///
+ /// Sets the to the corresponding for the .
+ ///
+ /// The calculation scenario to set containing the new surface line.
+ /// The failure mechanism containing the .
+ /// The old surface line for the calculation scenario.
+ public static void SyncCalculationScenarioWithNewSurfaceLine(PipingCalculationScenario calculationScenario, PipingFailureMechanism failureMechanism, RingtoetsPipingSurfaceLine oldSurfaceLine)
+ {
+ if (calculationScenario == null)
+ {
+ throw new ArgumentNullException("calculationScenario");
+ }
+
+ if (failureMechanism == null)
+ {
+ throw new ArgumentNullException("failureMechanism");
+ }
+
+ if (oldSurfaceLine == null)
+ {
+ throw new ArgumentNullException("oldSurfaceLine");
+ }
+
+ if (RemoveScenarioFromOldSectionResult(calculationScenario, failureMechanism, oldSurfaceLine))
+ {
+ AddScenarioToNewSectionResult(calculationScenario, failureMechanism);
+ }
+ }
+
+ private static void AddScenarioToNewSectionResult(PipingCalculationScenario calculationScenario, PipingFailureMechanism failureMechanism)
+ {
+ foreach (var failureMechanismSectionResult in failureMechanism.SectionResults)
+ {
+ var lineSegments = Math2D.ConvertLinePointsToLineSegments(failureMechanismSectionResult.Section.Points);
+
+ if (calculationScenario.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments))
+ {
+ failureMechanismSectionResult.CalculationScenarios.Add(calculationScenario);
+ break;
+ }
+ }
+ }
+
+ private static bool RemoveScenarioFromOldSectionResult(PipingCalculationScenario calculationScenario, PipingFailureMechanism failureMechanism, RingtoetsPipingSurfaceLine oldSurfaceLine)
+ {
+ for (int i = 0; i < failureMechanism.SectionResults.Count(); i++)
+ {
+ var sectionResult = failureMechanism.SectionResults.ElementAt(i);
+
+ for (int j = 0; j < sectionResult.CalculationScenarios.Count; j++)
+ {
+ var pipingCalculation = (PipingCalculation)sectionResult.CalculationScenarios[j];
+
+ if (pipingCalculation.Equals(calculationScenario) && !calculationScenario.InputParameters.SurfaceLine.Equals(oldSurfaceLine))
+ {
+ sectionResult.CalculationScenarios.Remove(calculationScenario);
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+ }
+}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj
===================================================================
diff -u -rd515de49557312e4af41b1c051c900d39d1f9e2f -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision d515de49557312e4af41b1c051c900d39d1f9e2f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -57,6 +57,7 @@
+
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PresentationObjects/PipingInputContextTest.cs
===================================================================
diff -u -rd515de49557312e4af41b1c051c900d39d1f9e2f -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PresentationObjects/PipingInputContextTest.cs (.../PipingInputContextTest.cs) (revision d515de49557312e4af41b1c051c900d39d1f9e2f)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PresentationObjects/PipingInputContextTest.cs (.../PipingInputContextTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -40,7 +40,7 @@
public void ParameteredConstructor_ExpectedValues()
{
// Setup
- var pipingInput = new PipingInput(new GeneralPipingInput());
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
var surfaceLines = new[]
{
new RingtoetsPipingSurfaceLine()
@@ -51,16 +51,19 @@
};
var mocks = new MockRepository();
+ var failureMechanism = new PipingFailureMechanism();
var assessmentSection = mocks.StrictMock();
mocks.ReplayAll();
// Call
- var context = new PipingInputContext(pipingInput, surfaceLines, stochasticSoilModels, assessmentSection);
+ var context = new PipingInputContext(calculationItem.InputParameters, calculationItem, surfaceLines, stochasticSoilModels, failureMechanism, assessmentSection);
// Assert
Assert.IsInstanceOf>(context);
- Assert.AreSame(pipingInput, context.WrappedData);
+ Assert.AreSame(calculationItem.InputParameters, context.WrappedData);
+ Assert.AreSame(calculationItem, context.PipingCalculationItem);
+ Assert.AreSame(failureMechanism, context.PipingFailureMechanism);
Assert.AreSame(assessmentSection, context.AssessmentSection);
CollectionAssert.AreEqual(surfaceLines, context.AvailablePipingSurfaceLines);
CollectionAssert.AreEqual(stochasticSoilModels, context.AvailableStochasticSoilModels);
@@ -72,7 +75,7 @@
public void ParameteredConstructor_AssessmentSectionIsNull_ThrowArgumentNullException()
{
// Setup
- var input = new PipingInput(new GeneralPipingInput());
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
var surfaceLines = new[]
{
new RingtoetsPipingSurfaceLine()
@@ -81,15 +84,71 @@
{
new TestStochasticSoilModel()
};
+ var failureMechanism = new PipingFailureMechanism();
// Call
- TestDelegate call = () => new PipingInputContext(input, surfaceLines, stochasticSoilModels, null);
+ TestDelegate call = () => new PipingInputContext(calculationItem.InputParameters, calculationItem, surfaceLines, stochasticSoilModels, failureMechanism, null);
// Assert
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "Het traject mag niet 'null' zijn.");
}
[Test]
+ public void ParameteredConstructor_CalculationItemNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var calculationInput = new PipingInput(new GeneralPipingInput());
+ var surfaceLines = new[]
+ {
+ new RingtoetsPipingSurfaceLine()
+ };
+ var stochasticSoilModels = new[]
+ {
+ new TestStochasticSoilModel()
+ };
+ var failureMechanism = new PipingFailureMechanism();
+
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.StrictMock();
+
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate call = () => new PipingInputContext(calculationInput, null, surfaceLines, stochasticSoilModels, failureMechanism, assessmentSection);
+
+ // Assert
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "De berekening mag niet 'null' zijn.");
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void ParameteredConstructor_FailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var surfaceLines = new[]
+ {
+ new RingtoetsPipingSurfaceLine()
+ };
+ var stochasticSoilModels = new[]
+ {
+ new TestStochasticSoilModel()
+ };
+
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.StrictMock();
+
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate call = () => new PipingInputContext(calculationItem.InputParameters, calculationItem, surfaceLines, stochasticSoilModels, null, assessmentSection);
+
+ // Assert
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "Het piping faalmechanisme mag niet 'null' zijn.");
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void Attach_Observer_ObserverAttachedToPipingInput()
{
// Setup
@@ -99,17 +158,20 @@
observer.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
- var pipingInput = new PipingInput(new GeneralPipingInput());
- var context = new PipingInputContext(pipingInput,
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+ var context = new PipingInputContext(calculationItem.InputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
// Call
context.Attach(observer);
// Assert
- pipingInput.NotifyObservers(); // Notification on wrapped object
+ calculationItem.InputParameters.NotifyObservers(); // Notification on wrapped object
mocks.VerifyAll(); // Expected UpdateObserver call
}
@@ -122,10 +184,13 @@
var observer = mocks.StrictMock();
mocks.ReplayAll();
- var pipingInput = new PipingInput(new GeneralPipingInput());
- var context = new PipingInputContext(pipingInput,
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+ var context = new PipingInputContext(calculationItem.InputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
context.Attach(observer);
@@ -134,7 +199,7 @@
context.Detach(observer);
// Assert
- pipingInput.NotifyObservers(); // Notification on wrapped object
+ calculationItem.InputParameters.NotifyObservers(); // Notification on wrapped object
mocks.VerifyAll(); // Expected no UpdateObserver call
}
@@ -148,13 +213,16 @@
observer.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
- var pipingInput = new PipingInput(new GeneralPipingInput());
- var context = new PipingInputContext(pipingInput,
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+ var context = new PipingInputContext(calculationItem.InputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
- pipingInput.Attach(observer); // Attach to wrapped object
+ calculationItem.InputParameters.Attach(observer); // Attach to wrapped object
// Call
context.NotifyObservers(); // Notification on context
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs
===================================================================
diff -u -rd515de49557312e4af41b1c051c900d39d1f9e2f -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision d515de49557312e4af41b1c051c900d39d1f9e2f)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -89,11 +89,16 @@
inputParameters.StochasticSoilModel = stochasticSoilModel;
inputParameters.StochasticSoilProfile = (stochasticSoilProfile);
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
@@ -134,14 +139,19 @@
projectObserver.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput());
inputParameters.Attach(projectObserver);
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
@@ -166,7 +176,13 @@
projectObserver.Expect(o => o.UpdateObserver()).Repeat.Times(numberProperties);
mocks.ReplayAll();
- var inputParameters = new PipingInput(new GeneralPipingInput());
+ var calculationItem = new PipingCalculationScenario(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
+ var inputParameters = new PipingInput(new GeneralPipingInput())
+ {
+ SurfaceLine = ValidSurfaceLine(0.0, 4.0)
+ };
inputParameters.Attach(projectObserver);
Random random = new Random(22);
@@ -190,12 +206,14 @@
new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
new[]
{
stochasticSoilModel1,
stochasticSoilModel2
},
+ failureMechanism,
assessmentSectionMock),
DampingFactorExit = new LognormalDistributionDesignVariable(dampingFactorExit),
PhreaticLevelExit = new NormalDistributionDesignVariable(phreaticLevelExit),
@@ -262,6 +280,9 @@
mocks.ReplayAll();
var surfaceLine = ValidSurfaceLine(0.0, 4.0);
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput())
{
SurfaceLine = surfaceLine
@@ -271,8 +292,10 @@
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock),
ExitPointL = (RoundedDouble) exitPoint,
EntryPointL = (RoundedDouble) entryPoint
@@ -298,15 +321,20 @@
mocks.ReplayAll();
var surfaceLine = ValidSurfaceLine(0.0, 4.0);
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput());
inputParameters.SurfaceLine = surfaceLine;
inputParameters.Attach(inputObserver);
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock),
EntryPointL = (RoundedDouble) 0.5,
ExitPointL = (RoundedDouble) 2
@@ -331,6 +359,9 @@
mocks.ReplayAll();
var surfaceLine = ValidSurfaceLine(0.0, 4.0);
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput())
{
SurfaceLine = surfaceLine
@@ -339,8 +370,10 @@
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
@@ -369,14 +402,19 @@
mocks.ReplayAll();
var surfaceLine = ValidSurfaceLine(0.0, 4.0);
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput());
inputParameters.SurfaceLine = surfaceLine;
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
@@ -405,6 +443,9 @@
mocks.ReplayAll();
double assessmentLevel = new Random(21).NextDouble();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput())
{
HydraulicBoundaryLocation = new HydraulicBoundaryLocation(0, String.Empty, 0.0, 0.0)
@@ -417,8 +458,10 @@
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
@@ -447,14 +490,19 @@
projectObserver.Expect(o => o.UpdateObserver()).Repeat.Times(1);
mocks.ReplayAll();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput());
inputParameters.Attach(projectObserver);
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
@@ -481,12 +529,20 @@
var assessmentSectionMock = mocks.StrictMock();
mocks.ReplayAll();
- var inputParameters = new PipingInput(new GeneralPipingInput());
+ var calculationItem = new PipingCalculationScenario(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
+ var inputParameters = new PipingInput(new GeneralPipingInput())
+ {
+ SurfaceLine = ValidSurfaceLine(0.0, 4.0)
+ };
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
inputParameters.StochasticSoilProfile = new StochasticSoilProfile(0.0, SoilProfileType.SoilProfile1D, 0)
@@ -518,6 +574,9 @@
var stochasticSoilModel = new StochasticSoilModel(0, "StochasticSoilModelName", "StochasticSoilModelSegmentName");
stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile);
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput())
{
SurfaceLine = testSurfaceLine,
@@ -527,11 +586,13 @@
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
new[]
{
stochasticSoilModel
},
+ failureMechanism,
assessmentSectionMock)
};
@@ -563,14 +624,19 @@
StochasticSoilModel = stochasticSoilModel,
StochasticSoilProfile = testPipingSoilProfile
};
+ var calculationItem = new PipingCalculationScenario(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
new[]
{
stochasticSoilModel
},
+ failureMechanism,
assessmentSectionMock)
};
@@ -611,11 +677,16 @@
StochasticSoilModel = stochasticSoilModel1,
StochasticSoilProfile = stochasticSoilProfile1
};
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var properties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
@@ -636,12 +707,17 @@
var typeDescriptorContextMock = mocks.StrictMock();
var assessmentSectionMock = mocks.StrictMock();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput());
var contextProperties = new PipingInputContextProperties
{
Data = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock)
};
inputParameters.HydraulicBoundaryLocation = new HydraulicBoundaryLocation(0, string.Empty, 0, 0)
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingInputContextTreeNodeInfoTest.cs
===================================================================
diff -u -ra9aafffab97152303562110b1d789bacb465ce24 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingInputContextTreeNodeInfoTest.cs (.../PipingInputContextTreeNodeInfoTest.cs) (revision a9aafffab97152303562110b1d789bacb465ce24)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingInputContextTreeNodeInfoTest.cs (.../PipingInputContextTreeNodeInfoTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -5,7 +5,6 @@
using Core.Common.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
-using Ringtoets.Common.Data;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Piping.Data;
using Ringtoets.Piping.Forms.PresentationObjects;
@@ -56,7 +55,13 @@
{
// Setup
var assessmentSection = mocks.StrictMock();
- var pipingInputContext = mocks.StrictMock(new PipingInput(new GeneralPipingInput()), Enumerable.Empty(), Enumerable.Empty(), assessmentSection);
+ var pipingInputContext = new PipingInputContext(
+ new PipingInput(new GeneralPipingInput()),
+ new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()),
+ Enumerable.Empty(),
+ Enumerable.Empty(),
+ new PipingFailureMechanism(),
+ assessmentSection);
mocks.ReplayAll();
@@ -74,7 +79,13 @@
{
// Setup
var assessmentSection = mocks.StrictMock();
- var pipingInputContext = mocks.StrictMock(new PipingInput(new GeneralPipingInput()), Enumerable.Empty(), Enumerable.Empty(), assessmentSection);
+ var pipingInputContext = new PipingInputContext(
+ new PipingInput(new GeneralPipingInput()),
+ new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()),
+ Enumerable.Empty(),
+ Enumerable.Empty(),
+ new PipingFailureMechanism(),
+ assessmentSection);
mocks.ReplayAll();
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TypeConverters/LognormalDistributionDesignVariableTypeConverterTest.cs
===================================================================
diff -u -ra9aafffab97152303562110b1d789bacb465ce24 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TypeConverters/LognormalDistributionDesignVariableTypeConverterTest.cs (.../LognormalDistributionDesignVariableTypeConverterTest.cs) (revision a9aafffab97152303562110b1d789bacb465ce24)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TypeConverters/LognormalDistributionDesignVariableTypeConverterTest.cs (.../LognormalDistributionDesignVariableTypeConverterTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -198,10 +198,15 @@
var observer = mocks.StrictMock();
observer.Expect(o => o.UpdateObserver());
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput());
var inputParametersContext = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
var inputParameterContextProperties = new PipingInputContextProperties
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TypeConverters/NormalDistributionDesignVariableTypeConverterTest.cs
===================================================================
diff -u -ra9aafffab97152303562110b1d789bacb465ce24 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TypeConverters/NormalDistributionDesignVariableTypeConverterTest.cs (.../NormalDistributionDesignVariableTypeConverterTest.cs) (revision a9aafffab97152303562110b1d789bacb465ce24)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TypeConverters/NormalDistributionDesignVariableTypeConverterTest.cs (.../NormalDistributionDesignVariableTypeConverterTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -197,10 +197,15 @@
var observer = mocks.StrictMock();
observer.Expect(o => o.UpdateObserver());
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var inputParameters = new PipingInput(new GeneralPipingInput());
var inputParametersContext = new PipingInputContext(inputParameters,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
var inputParameterContextProperties = new PipingInputContextProperties
{
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextHydraulicBoundaryLocationEditorTest.cs
===================================================================
diff -u -ra9aafffab97152303562110b1d789bacb465ce24 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextHydraulicBoundaryLocationEditorTest.cs (.../PipingInputContextHydraulicBoundaryLocationEditorTest.cs) (revision a9aafffab97152303562110b1d789bacb465ce24)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextHydraulicBoundaryLocationEditorTest.cs (.../PipingInputContextHydraulicBoundaryLocationEditorTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -36,13 +36,18 @@
var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
hydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation);
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation()
};
var pipingInputContext = new PipingInputContext(pipingInput,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
@@ -84,14 +89,19 @@
.Repeat.AtLeastOnce();
var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
HydraulicBoundaryLocation = hydraulicBoundaryLocation
};
hydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation);
var inputParametersContext = new PipingInputContext(pipingInput,
+ calculationItem,
Enumerable.Empty(),
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextStochasticSoilModelSelectionEditorTest.cs
===================================================================
diff -u -rd515de49557312e4af41b1c051c900d39d1f9e2f -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextStochasticSoilModelSelectionEditorTest.cs (.../PipingInputContextStochasticSoilModelSelectionEditorTest.cs) (revision d515de49557312e4af41b1c051c900d39d1f9e2f)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextStochasticSoilModelSelectionEditorTest.cs (.../PipingInputContextStochasticSoilModelSelectionEditorTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -51,16 +51,21 @@
var context = mockRepository.DynamicMock();
var assessmentSectionMock = mockRepository.StrictMock();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
StochasticSoilModel = new StochasticSoilModel(0, "StochasticSoilModelName", "StochasticSoilModelSegmentName")
};
var pipingInputContext = new PipingInputContext(pipingInput,
+ calculationItem,
Enumerable.Empty(),
new[]
{
new TestStochasticSoilModel()
},
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
@@ -120,18 +125,23 @@
new Point3D(2, 3, 0)
});
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
SurfaceLine = surfaceLine,
StochasticSoilModel = stochasticSoilModel,
StochasticSoilProfile = stochasticSoilProfile
};
var inputParametersContext = new PipingInputContext(pipingInput,
+ calculationItem,
Enumerable.Empty(),
new[]
{
stochasticSoilModel
},
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextStochasticSoilProfileSelectionEditorTest.cs
===================================================================
diff -u -rcda9bb0707f49cfb8e685d3ec04da01240c73f26 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextStochasticSoilProfileSelectionEditorTest.cs (.../PipingInputContextStochasticSoilProfileSelectionEditorTest.cs) (revision cda9bb0707f49cfb8e685d3ec04da01240c73f26)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextStochasticSoilProfileSelectionEditorTest.cs (.../PipingInputContextStochasticSoilProfileSelectionEditorTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -51,6 +51,9 @@
var context = mockRepository.DynamicMock();
var assessmentSectionMock = mockRepository.StrictMock();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
StochasticSoilProfile = new StochasticSoilProfile(1.0, SoilProfileType.SoilProfile1D, 2)
@@ -59,11 +62,13 @@
}
};
var pipingInputContext = new PipingInputContext(pipingInput,
+ calculationItem,
Enumerable.Empty(),
new[]
{
new TestStochasticSoilModel()
},
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
@@ -123,18 +128,23 @@
new Point3D(2, 3, 0)
});
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
SurfaceLine = surfaceLine,
StochasticSoilModel = stochasticSoilModel,
StochasticSoilProfile = stochasticSoilProfile
};
var inputParametersContext = new PipingInputContext(pipingInput,
+ calculationItem,
Enumerable.Empty(),
new[]
{
stochasticSoilModel
},
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextSurfaceLineSelectionEditorTest.cs
===================================================================
diff -u -ra9aafffab97152303562110b1d789bacb465ce24 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextSurfaceLineSelectionEditorTest.cs (.../PipingInputContextSurfaceLineSelectionEditorTest.cs) (revision a9aafffab97152303562110b1d789bacb465ce24)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/UITypeEditors/PipingInputContextSurfaceLineSelectionEditorTest.cs (.../PipingInputContextSurfaceLineSelectionEditorTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -29,16 +29,21 @@
var context = mockRepository.DynamicMock();
var assessmentSectionMock = mockRepository.StrictMock();
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
SurfaceLine = ValidSurfaceLine()
};
var inputParametersContext = new PipingInputContext(pipingInput,
+ calculationItem,
new[]
{
new RingtoetsPipingSurfaceLine()
},
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
@@ -81,16 +86,21 @@
new Point3D(0.0, 0.0, 0.0),
new Point3D(1.0, 0.0, 1.0)
});
+ var calculationItem = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = new PipingFailureMechanism();
+
var pipingInput = new PipingInput(new GeneralPipingInput())
{
SurfaceLine = surfaceLine
};
var inputParametersContext = new PipingInputContext(pipingInput,
+ calculationItem,
new[]
{
surfaceLine
},
Enumerable.Empty(),
+ failureMechanism,
assessmentSectionMock);
var properties = new PipingInputContextProperties
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs
===================================================================
diff -u -r1279dcba187f56c0ba96dfdb962067304e333475 -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 1279dcba187f56c0ba96dfdb962067304e333475)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -339,14 +339,17 @@
{
// Setup
var pipingCalculationsView = ShowFullyConfiguredPipingCalculationsView();
- var secondPipingInputItem = ((PipingCalculation) ((PipingCalculationGroup) pipingCalculationsView.Data).Children[1]).InputParameters;
+ var secondPipingCalculationItem = ((PipingCalculation) ((PipingCalculationGroup) pipingCalculationsView.Data).Children[1]);
+ var secondPipingInputItem = secondPipingCalculationItem.InputParameters;
var mocks = new MockRepository();
var applicationSelectionMock = mocks.StrictMock();
applicationSelectionMock.Stub(asm => asm.Selection).Return(null);
applicationSelectionMock.Expect(asm => asm.Selection = new PipingInputContext(secondPipingInputItem,
+ secondPipingCalculationItem,
pipingCalculationsView.PipingFailureMechanism.SurfaceLines,
pipingCalculationsView.PipingFailureMechanism.StochasticSoilModels,
+ pipingCalculationsView.PipingFailureMechanism,
pipingCalculationsView.AssessmentSection));
mocks.ReplayAll();
@@ -369,12 +372,15 @@
var mocks = new MockRepository();
var applicationSelectionMock = mocks.StrictMock();
var pipingCalculationsView = ShowFullyConfiguredPipingCalculationsView();
- var secondPipingInputItem = ((PipingCalculation) ((PipingCalculationGroup) pipingCalculationsView.Data).Children[1]).InputParameters;
+ var secondPipingCalculationItem = ((PipingCalculation)((PipingCalculationGroup)pipingCalculationsView.Data).Children[1]);
+ var secondPipingInputItem = secondPipingCalculationItem.InputParameters;
applicationSelectionMock.Stub(asm => asm.Selection)
.Return(new PipingInputContext(secondPipingInputItem,
+ secondPipingCalculationItem,
pipingCalculationsView.PipingFailureMechanism.SurfaceLines,
pipingCalculationsView.PipingFailureMechanism.StochasticSoilModels,
+ pipingCalculationsView.PipingFailureMechanism,
pipingCalculationsView.AssessmentSection));
mocks.ReplayAll();
@@ -398,12 +404,15 @@
var mocks = new MockRepository();
var applicationSelectionMock = mocks.StrictMock();
var pipingCalculationsView = ShowFullyConfiguredPipingCalculationsView();
- var secondPipingInputItem = ((PipingCalculation) ((PipingCalculationGroup) pipingCalculationsView.Data).Children[1]).InputParameters;
+ var secondPipingCalculationItem = ((PipingCalculation)((PipingCalculationGroup)pipingCalculationsView.Data).Children[1]);
+ var secondPipingInputItem = secondPipingCalculationItem.InputParameters;
applicationSelectionMock.Stub(asm => asm.Selection).Return(null);
applicationSelectionMock.Expect(asm => asm.Selection = new PipingInputContext(secondPipingInputItem,
+ secondPipingCalculationItem,
pipingCalculationsView.PipingFailureMechanism.SurfaceLines,
pipingCalculationsView.PipingFailureMechanism.StochasticSoilModels,
+ pipingCalculationsView.PipingFailureMechanism,
pipingCalculationsView.AssessmentSection));
mocks.ReplayAll();
Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationScenarioServiceTest.cs
===================================================================
diff -u
--- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationScenarioServiceTest.cs (revision 0)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationScenarioServiceTest.cs (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -0,0 +1,204 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Core.Common.Base.Geometry;
+using NUnit.Framework;
+using Ringtoets.Common.Data.FailureMechanism;
+using Ringtoets.Piping.Data;
+using Ringtoets.Piping.Data.TestUtil;
+using Ringtoets.Piping.Forms;
+using Ringtoets.Piping.Primitives;
+
+namespace Ringtoets.Piping.Service.Test
+{
+ [TestFixture]
+ public class PipingCalculationScenarioServiceTest
+ {
+ [Test]
+ public void SyncCalculationScenarioWithNewSurfaceLine_CalculationScenarioNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = GetFailureMechanism();
+
+ // Call
+ TestDelegate test = () => PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine(null, failureMechanism, new RingtoetsPipingSurfaceLine());
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("calculationScenario", exception.ParamName);
+ }
+
+ [Test]
+ public void SyncCalculationScenarioWithNewSurfaceLine_FailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var pipingCalculationScenario = new PipingCalculationScenario(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var surfaceLine = new RingtoetsPipingSurfaceLine();
+
+ // Call
+ TestDelegate call = () => PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine(pipingCalculationScenario, null, surfaceLine);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
+ }
+
+ [Test]
+ public void SyncCalculationScenarioWithNewSurfaceLine_SurfaceLineNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var pipingCalculationScenario = new PipingCalculationScenario(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var failureMechanism = GetFailureMechanism();
+
+ // Call
+ TestDelegate call = () => PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine(pipingCalculationScenario, failureMechanism, null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("oldSurfaceLine", exception.ParamName);
+ }
+
+ [Test]
+ public void SyncCalculationScenarioWithNewSurfaceLine_NewSurfaceLineSameAsOld_SectionResultsNotUpdated()
+ {
+ // Setup
+ var failureMechanism = GetFailureMechanism();
+ var calculationGroup = failureMechanism.CalculationsGroup.Children.First() as PipingCalculationGroup;
+ var calculationToSync = calculationGroup.Children.First() as PipingCalculationScenario;
+
+ // Precondition
+ Assert.IsNotNull(calculationToSync);
+
+ var expectedSectionResultScenarios = failureMechanism.SectionResults.First().CalculationScenarios.ToList();
+
+ // Call
+ PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine(calculationToSync, failureMechanism, calculationToSync.InputParameters.SurfaceLine);
+
+ // Assert
+ CollectionAssert.AreEqual(expectedSectionResultScenarios, failureMechanism.SectionResults.First().CalculationScenarios);
+ }
+
+ [Test]
+ public void SyncCalculationScenarioWithNewSurfaceLine_NewSurfaceLine_SectionResultsUpdated()
+ {
+ // Setup
+ var failureMechanism = GetFailureMechanism();
+ var newSurfaceLine = failureMechanism.SurfaceLines.ElementAt(1);
+
+ var calculationGroup = failureMechanism.CalculationsGroup.Children.First() as PipingCalculationGroup;
+ var calculationToSync = calculationGroup.Children.First() as PipingCalculationScenario;
+
+ // Precondition
+ Assert.IsNotNull(calculationToSync);
+
+ var oldSurfaceLine = calculationToSync.InputParameters.SurfaceLine;
+ calculationToSync.InputParameters.SurfaceLine = newSurfaceLine;
+
+ var sectionResultScenariosBeforeSync = failureMechanism.SectionResults.First().CalculationScenarios.ToList();
+ var sectionResultScenariosBeforeSync2 = failureMechanism.SectionResults.ElementAt(1).CalculationScenarios.ToList();
+
+ // Call
+ PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine(calculationToSync, failureMechanism, oldSurfaceLine);
+
+ // Assert
+ CollectionAssert.AreNotEqual(sectionResultScenariosBeforeSync, failureMechanism.SectionResults.First().CalculationScenarios);
+ CollectionAssert.AreNotEqual(sectionResultScenariosBeforeSync2, failureMechanism.SectionResults.ElementAt(1).CalculationScenarios);
+ }
+
+ private static PipingFailureMechanism GetFailureMechanism()
+ {
+ var surfaceLine1 = new RingtoetsPipingSurfaceLine
+ {
+ Name = "Surface line 1",
+ ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0)
+ };
+
+ surfaceLine1.SetGeometry(new[]
+ {
+ new Point3D(0.0, 5.0, 0.0),
+ new Point3D(0.0, 0.0, 1.0),
+ new Point3D(0.0, -5.0, 0.0)
+ });
+
+ var surfaceLine2 = new RingtoetsPipingSurfaceLine
+ {
+ Name = "Surface line 2",
+ ReferenceLineIntersectionWorldPoint = new Point2D(10.0, 0.0)
+ };
+
+ surfaceLine2.SetGeometry(new[]
+ {
+ new Point3D(10.0, 10.0, 0.0),
+ new Point3D(10.0, 0.0, 5.0),
+ new Point3D(10.0, -10.0, 0.0)
+ });
+
+ var failureMechanism = new PipingFailureMechanism
+ {
+ SurfaceLines =
+ {
+ surfaceLine1,
+ surfaceLine2
+ },
+ StochasticSoilModels =
+ {
+ new TestStochasticSoilModel
+ {
+ Geometry =
+ {
+ new Point2D(0.0, 0.0), new Point2D(5.0, 0.0)
+ },
+ }
+ }
+ };
+
+ failureMechanism.AddSection(new FailureMechanismSection("Section 1", new List
+ {
+ new Point2D(0.0, 0.0),
+ new Point2D(5.0, 0.0)
+ }));
+
+ failureMechanism.AddSection(new FailureMechanismSection("Section 2", new List
+ {
+ new Point2D(5.0, 0.0),
+ new Point2D(10.0, 0.0)
+ }));
+
+ var calculationsStructure = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(
+ failureMechanism.SurfaceLines,
+ failureMechanism.StochasticSoilModels,
+ failureMechanism.GeneralInput,
+ failureMechanism.SemiProbabilisticInput);
+
+ foreach (var item in calculationsStructure)
+ {
+ failureMechanism.CalculationsGroup.Children.Add(item);
+ }
+
+ failureMechanism.CalculationsGroup.AddCalculationScenariosToFailureMechanismSectionResult(failureMechanism);
+
+ return failureMechanism;
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj
===================================================================
diff -u -rd515de49557312e4af41b1c051c900d39d1f9e2f -r52fb2dd367bdca54564201857ed6e0b3cc244693
--- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision d515de49557312e4af41b1c051c900d39d1f9e2f)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693)
@@ -59,6 +59,7 @@
+
@@ -82,6 +83,10 @@
{70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2}
Ringtoets.HydraRing.Data
+
+ {7CD038E1-E111-4969-ACED-22C5BD2974E1}
+ Ringtoets.Piping.Forms
+
{97F6406A-6338-4863-92A6-0D5C00A5F7C9}
Ringtoets.Piping.InputParameterCalculation