Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismProperties.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -rbc771ec1743c16b85b12a768f1fa10431be9948d --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismProperties.cs (.../PipingFailureMechanismProperties.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismProperties.cs (.../PipingFailureMechanismProperties.cs) (revision bc771ec1743c16b85b12a768f1fa10431be9948d) @@ -26,6 +26,7 @@ using Core.Common.Gui.Attributes; using Core.Common.Gui.PropertyBag; using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.Piping.Data; @@ -60,28 +61,37 @@ private const int meanDiameter70PropertyIndex = 19; private const int sellMeijerReductionFactorPropertyIndex = 20; + private readonly IAssessmentSection assessmentSection; private readonly IFailureMechanismPropertyChangeHandler propertyChangeHandler; /// /// Creates a new instance of . /// /// The instance to show the properties of. + /// The assessment section the data belongs to. /// Handler responsible for handling effects of a property change. - /// Thrown when any input parameter is null. + /// Thrown when any parameter is null. public PipingFailureMechanismProperties(PipingFailureMechanism data, + IAssessmentSection assessmentSection, IFailureMechanismPropertyChangeHandler handler) { if (data == null) { throw new ArgumentNullException(nameof(data)); } + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + if (handler == null) { throw new ArgumentNullException(nameof(handler)); } Data = data; + this.assessmentSection = assessmentSection; propertyChangeHandler = handler; } @@ -277,7 +287,7 @@ { get { - return new RoundedDouble(2, data.PipingProbabilityAssessmentInput.SectionLength); + return new RoundedDouble(2, assessmentSection.ReferenceLine.Length); } } @@ -291,7 +301,7 @@ get { PipingProbabilityAssessmentInput probabilityAssessmentInput = data.PipingProbabilityAssessmentInput; - return new RoundedDouble(2, probabilityAssessmentInput.GetN(probabilityAssessmentInput.SectionLength)); + return new RoundedDouble(2, probabilityAssessmentInput.GetN(assessmentSection.ReferenceLine.Length)); } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -racd375042fb10c2774f972b9dfe8a2cf366de1f2 -rbc771ec1743c16b85b12a768f1fa10431be9948d --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision acd375042fb10c2774f972b9dfe8a2cf366de1f2) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision bc771ec1743c16b85b12a768f1fa10431be9948d) @@ -75,7 +75,8 @@ { yield return new PropertyInfo { - CreateInstance = context => new PipingFailureMechanismProperties(context.WrappedData, new FailureMechanismPropertyChangeHandler()) + CreateInstance = context => new PipingFailureMechanismProperties(context.WrappedData, context.Parent, + new FailureMechanismPropertyChangeHandler()) }; yield return new PropertyInfo { Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismPropertiesTest.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -rbc771ec1743c16b85b12a768f1fa10431be9948d --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismPropertiesTest.cs (.../PipingFailureMechanismPropertiesTest.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismPropertiesTest.cs (.../PipingFailureMechanismPropertiesTest.cs) (revision bc771ec1743c16b85b12a768f1fa10431be9948d) @@ -27,6 +27,7 @@ using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms.PropertyClasses; @@ -61,15 +62,16 @@ private const int sellMeijerReductionFactorPropertyIndex = 19; [Test] - public void Constructor_DataIsNull_ThrowArgumentNullException() + public void Constructor_DataNull_ThrowArgumentNullException() { // Setup var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); var handler = mocks.Stub>(); mocks.ReplayAll(); // Call - TestDelegate test = () => new PipingFailureMechanismProperties(null, handler); + TestDelegate test = () => new PipingFailureMechanismProperties(null, assessmentSection, handler); // Assert string paramName = Assert.Throws(test).ParamName; @@ -78,16 +80,20 @@ } [Test] - public void Constructor_ChangeHandlerIsNull_ThrowArgumentNullException() + public void Constructor_ChangeHandlerNull_ThrowArgumentNullException() { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + // Call - TestDelegate test = () => new PipingFailureMechanismProperties( - new PipingFailureMechanism(), - null); + TestDelegate test = () => new PipingFailureMechanismProperties(new PipingFailureMechanism(), assessmentSection, null); // Assert string paramName = Assert.Throws(test).ParamName; Assert.AreEqual("handler", paramName); + mocks.VerifyAll(); } [Test] @@ -101,14 +107,13 @@ IsRelevant = isRelevant }; - var mockRepository = new MockRepository(); - var handler = mockRepository.Stub>(); - mockRepository.ReplayAll(); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + var handler = mocks.Stub>(); + mocks.ReplayAll(); // Call - var properties = new PipingFailureMechanismProperties( - failureMechanism, - handler); + var properties = new PipingFailureMechanismProperties(failureMechanism, assessmentSection, handler); // Assert Assert.IsInstanceOf>(properties); @@ -139,15 +144,14 @@ Assert.AreEqual(probabilityAssessmentInput.A, properties.A); Assert.AreEqual(probabilityAssessmentInput.B, properties.B); Assert.AreEqual(2, properties.N.NumberOfDecimalPlaces); - Assert.AreEqual(probabilityAssessmentInput.GetN( - probabilityAssessmentInput.SectionLength), + Assert.AreEqual(probabilityAssessmentInput.GetN(assessmentSection.ReferenceLine.Length), properties.N, properties.N.GetAccuracy()); Assert.AreEqual(2, properties.SectionLength.NumberOfDecimalPlaces); - Assert.AreEqual(probabilityAssessmentInput.SectionLength, + Assert.AreEqual(assessmentSection.ReferenceLine.Length, properties.SectionLength, properties.SectionLength.GetAccuracy()); - mockRepository.VerifyAll(); + mocks.VerifyAll(); } [Test] @@ -159,15 +163,13 @@ IsRelevant = true }; - var mockRepository = new MockRepository(); - var handler = mockRepository.Stub>(); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + var handler = mocks.Stub>(); + mocks.ReplayAll(); - mockRepository.ReplayAll(); - // Call - var properties = new PipingFailureMechanismProperties( - failureMechanism, - handler); + var properties = new PipingFailureMechanismProperties(failureMechanism, assessmentSection, handler); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); @@ -317,7 +319,7 @@ "Reductiefactor Sellmeijer.", true); - mockRepository.VerifyAll(); + mocks.VerifyAll(); } [Test] @@ -329,15 +331,13 @@ IsRelevant = false }; - var mockRepository = new MockRepository(); - var handler = mockRepository.Stub>(); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + var handler = mocks.Stub>(); + mocks.ReplayAll(); - mockRepository.ReplayAll(); - // Call - var properties = new PipingFailureMechanismProperties( - failureMechanism, - handler); + var properties = new PipingFailureMechanismProperties(failureMechanism, assessmentSection, handler); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); @@ -373,7 +373,7 @@ "Geeft aan of dit toetsspoor relevant is of niet.", true); - mockRepository.VerifyAll(); + mocks.VerifyAll(); } [Test] @@ -386,16 +386,15 @@ { // Setup var mocks = new MockRepository(); - var observer = mocks.StrictMock(); + var assessmentSection = mocks.Stub(); var changeHandler = mocks.Stub>(); + var observer = mocks.StrictMock(); mocks.ReplayAll(); var failureMechanism = new PipingFailureMechanism(); failureMechanism.Attach(observer); - var properties = new PipingFailureMechanismProperties( - failureMechanism, - changeHandler); + var properties = new PipingFailureMechanismProperties(failureMechanism, assessmentSection, changeHandler); // Call TestDelegate call = () => properties.A = value; @@ -416,17 +415,16 @@ { // Setup var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + var changeHandler = mocks.Stub>(); var observer = mocks.StrictMock(); observer.Expect(o => o.UpdateObserver()); - var changeHandler = mocks.Stub>(); mocks.ReplayAll(); var failureMechanism = new PipingFailureMechanism(); failureMechanism.Attach(observer); - var properties = new PipingFailureMechanismProperties( - failureMechanism, - changeHandler); + var properties = new PipingFailureMechanismProperties(failureMechanism, assessmentSection, changeHandler); // Call properties.A = value; @@ -450,19 +448,19 @@ var roundedValue = (RoundedDouble) value; var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); var observable = mocks.StrictMock(); + mocks.ReplayAll(); + var changeHandler = new FailureMechanismSetPropertyValueAfterConfirmationParameterTester( failureMechanism, roundedValue, new[] { observable }); - mocks.ReplayAll(); - var properties = new PipingFailureMechanismProperties( - failureMechanism, - changeHandler); + var properties = new PipingFailureMechanismProperties(failureMechanism, assessmentSection, changeHandler); // Call TestDelegate test = () => properties.WaterVolumetricWeight = roundedValue; @@ -486,8 +484,10 @@ var roundedValue = (RoundedDouble) value; var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); var observable = mocks.StrictMock(); observable.Expect(o => o.NotifyObservers()); + mocks.ReplayAll(); var changeHandler = new FailureMechanismSetPropertyValueAfterConfirmationParameterTester( failureMechanism, @@ -497,12 +497,8 @@ observable }); - mocks.ReplayAll(); + var properties = new PipingFailureMechanismProperties(failureMechanism, assessmentSection, changeHandler); - var properties = new PipingFailureMechanismProperties( - failureMechanism, - changeHandler); - // Call properties.WaterVolumetricWeight = roundedValue; @@ -520,16 +516,15 @@ { // Setup var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); var changeHandler = mocks.Stub>(); mocks.ReplayAll(); var pipingFailureMechanism = new PipingFailureMechanism { IsRelevant = isRelevant }; - var properties = new PipingFailureMechanismProperties( - pipingFailureMechanism, - changeHandler); + var properties = new PipingFailureMechanismProperties(pipingFailureMechanism, assessmentSection, changeHandler); // Assert Assert.IsTrue(properties.DynamicVisibleValidationMethod(nameof(properties.Name)));