Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputContextProperties.cs =================================================================== diff -u -rac96d7c315129af851634ed5a4a6800b59ede718 -r9820628e44f481c52fba16bafbbf4aa0739afef0 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputContextProperties.cs (.../PipingOutputContextProperties.cs) (revision ac96d7c315129af851634ed5a4a6800b59ede718) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputContextProperties.cs (.../PipingOutputContextProperties.cs) (revision 9820628e44f481c52fba16bafbbf4aa0739afef0) @@ -19,21 +19,48 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using Core.Common.Base.Data; using Core.Common.Gui.Attributes; using Core.Common.Gui.PropertyBag; using Core.Common.Util.Attributes; using Ringtoets.Common.Forms.Helpers; -using Ringtoets.Piping.Forms.PresentationObjects; +using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.Properties; namespace Ringtoets.Piping.Forms.PropertyClasses { /// - /// ViewModel of for properties panel. + /// ViewModel of for properties panel. /// - public class PipingOutputContextProperties : ObjectProperties + public class PipingOutputContextProperties : ObjectProperties { + private readonly PipingSemiProbabilisticOutput semiProbabilisticOutput; + + /// + /// Creates a new instance of . + /// + /// The output to show the properties for. + /// The semi probabilistic output to + /// show properties for. + /// Thrown when any parameter + /// is null. + public PipingOutputContextProperties(PipingOutput output, PipingSemiProbabilisticOutput semiProbabilisticOutput) + { + if (output == null) + { + throw new ArgumentNullException(nameof(output)); + } + + if (semiProbabilisticOutput == null) + { + throw new ArgumentNullException(nameof(semiProbabilisticOutput)); + } + + Data = output; + this.semiProbabilisticOutput = semiProbabilisticOutput; + } + [ResourcesCategory(typeof(Resources), nameof(Resources.PipingOutputContext_Categories_Uplift), 1, 4)] [ResourcesDisplayName(typeof(Resources), nameof(Resources.PipingOutputContext_UpliftEffectiveStress_DisplayName))] [ResourcesDescription(typeof(Resources), nameof(Resources.PipingOutputContext_UpliftEffectiveStress_Description))] @@ -42,7 +69,7 @@ { get { - return data.WrappedData.UpliftEffectiveStress; + return data.UpliftEffectiveStress; } } @@ -54,7 +81,7 @@ { get { - return data.SemiProbabilisticOutput.UpliftFactorOfSafety; + return semiProbabilisticOutput.UpliftFactorOfSafety; } } @@ -66,7 +93,7 @@ { get { - return data.SemiProbabilisticOutput.UpliftReliability; + return semiProbabilisticOutput.UpliftReliability; } } @@ -78,7 +105,7 @@ { get { - return ProbabilityFormattingHelper.Format(data.SemiProbabilisticOutput.UpliftProbability); + return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.UpliftProbability); } } @@ -90,7 +117,7 @@ { get { - return data.WrappedData.HeaveGradient; + return data.HeaveGradient; } } @@ -102,7 +129,7 @@ { get { - return data.SemiProbabilisticOutput.HeaveFactorOfSafety; + return semiProbabilisticOutput.HeaveFactorOfSafety; } } @@ -114,7 +141,7 @@ { get { - return data.SemiProbabilisticOutput.HeaveReliability; + return semiProbabilisticOutput.HeaveReliability; } } @@ -126,7 +153,7 @@ { get { - return ProbabilityFormattingHelper.Format(data.SemiProbabilisticOutput.HeaveProbability); + return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.HeaveProbability); } } @@ -138,7 +165,7 @@ { get { - return data.WrappedData.SellmeijerCreepCoefficient; + return data.SellmeijerCreepCoefficient; } } @@ -150,7 +177,7 @@ { get { - return data.WrappedData.SellmeijerCriticalFall; + return data.SellmeijerCriticalFall; } } @@ -162,7 +189,7 @@ { get { - return data.WrappedData.SellmeijerReducedFall; + return data.SellmeijerReducedFall; } } @@ -174,7 +201,7 @@ { get { - return data.SemiProbabilisticOutput.SellmeijerFactorOfSafety; + return semiProbabilisticOutput.SellmeijerFactorOfSafety; } } @@ -186,7 +213,7 @@ { get { - return data.SemiProbabilisticOutput.SellmeijerReliability; + return semiProbabilisticOutput.SellmeijerReliability; } } @@ -198,7 +225,7 @@ { get { - return ProbabilityFormattingHelper.Format(data.SemiProbabilisticOutput.SellmeijerProbability); + return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.SellmeijerProbability); } } @@ -210,7 +237,7 @@ { get { - return ProbabilityFormattingHelper.Format(data.SemiProbabilisticOutput.RequiredProbability); + return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.RequiredProbability); } } @@ -222,7 +249,7 @@ { get { - return data.SemiProbabilisticOutput.RequiredReliability; + return semiProbabilisticOutput.RequiredReliability; } } @@ -234,7 +261,7 @@ { get { - return ProbabilityFormattingHelper.Format(data.SemiProbabilisticOutput.PipingProbability); + return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.PipingProbability); } } @@ -246,7 +273,7 @@ { get { - return data.SemiProbabilisticOutput.PipingReliability; + return semiProbabilisticOutput.PipingReliability; } } @@ -258,7 +285,7 @@ { get { - return data.SemiProbabilisticOutput.PipingFactorOfSafety; + return semiProbabilisticOutput.PipingFactorOfSafety; } } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -r7111575120feef926652228c88b963ae1c18287e -r9820628e44f481c52fba16bafbbf4aa0739afef0 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 7111575120feef926652228c88b963ae1c18287e) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 9820628e44f481c52fba16bafbbf4aa0739afef0) @@ -76,7 +76,10 @@ { CreateInstance = context => new PipingInputContextProperties(context, new ObservablePropertyChangeHandler(context.PipingCalculation, context.WrappedData)) }; - yield return new PropertyInfo(); + yield return new PropertyInfo + { + CreateInstance = context => new PipingOutputContextProperties(context.WrappedData, context.SemiProbabilisticOutput) + }; yield return new PropertyInfo { CreateInstance = context => new PipingSurfaceLineCollectionProperties(context.WrappedData) Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingOutputContextPropertiesTest.cs =================================================================== diff -u -r3fe99efe7580ec1d9eb850908c001c990dc43fe5 -r9820628e44f481c52fba16bafbbf4aa0739afef0 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingOutputContextPropertiesTest.cs (.../PipingOutputContextPropertiesTest.cs) (revision 3fe99efe7580ec1d9eb850908c001c990dc43fe5) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingOutputContextPropertiesTest.cs (.../PipingOutputContextPropertiesTest.cs) (revision 9820628e44f481c52fba16bafbbf4aa0739afef0) @@ -27,7 +27,6 @@ using Ringtoets.Common.Data.TestUtil; using Ringtoets.Piping.Data; using Ringtoets.Piping.Data.TestUtil; -using Ringtoets.Piping.Forms.PresentationObjects; using Ringtoets.Piping.Forms.PropertyClasses; namespace Ringtoets.Piping.Forms.Test.PropertyClasses @@ -36,17 +35,42 @@ public class PipingOutputContextPropertiesTest { [Test] - public void DefaultConstructor_ExpectedValues() + public void Constructor_OutputNull_ThrowsArgumentNullException() { // Call - var properties = new PipingOutputContextProperties(); + TestDelegate call = () => new PipingOutputContextProperties(null, new TestPipingSemiProbabilisticOutput()); // Assert - Assert.IsInstanceOf>(properties); - Assert.IsNull(properties.Data); + var exception = Assert.Throws(call); + Assert.AreEqual("output", exception.ParamName); } [Test] + public void Constructor_SemiProbabilisticOutputNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => new PipingOutputContextProperties(new TestPipingOutput(), null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("semiProbabilisticOutput", exception.ParamName); + } + + [Test] + public void Constructor_ExpectedValues() + { + // Setup + var output = new TestPipingOutput(); + + // Call + var properties = new PipingOutputContextProperties(output, new TestPipingSemiProbabilisticOutput()); + + // Assert + Assert.IsInstanceOf>(properties); + Assert.AreSame(output, properties.Data); + } + + [Test] public void GetProperties_WithData_ReturnExpectedValues() { // Setup @@ -98,12 +122,9 @@ }); // Call - var properties = new PipingOutputContextProperties - { - Data = new PipingOutputContext(output, semiProbabilisticOutput) - }; + var properties = new PipingOutputContextProperties(output, semiProbabilisticOutput); - // Call & Assert + // Assert const string probabilityFormat = "1/{0:n0}"; Assert.AreEqual(upliftFactorOfSafety, properties.UpliftFactorOfSafety, properties.UpliftFactorOfSafety.GetAccuracy()); Assert.AreEqual(upliftReliability, properties.UpliftReliability, properties.UpliftReliability.GetAccuracy()); @@ -165,12 +186,9 @@ pipingReliability, pipingFactorOfSafety); - var properties = new PipingOutputContextProperties - { - Data = new PipingOutputContext(new TestPipingOutput(), semiProbabilisticOutput) - }; + var properties = new PipingOutputContextProperties(new TestPipingOutput(), semiProbabilisticOutput); - // Call & Assert + // Assert const string probability = "1/Oneindig"; Assert.AreEqual(probability, properties.UpliftProbability); Assert.AreEqual(probability, properties.HeaveProbability); @@ -216,10 +234,7 @@ pipingFactorOfSafety); // Call - var properties = new PipingOutputContextProperties - { - Data = new PipingOutputContext(new TestPipingOutput(), semiProbabilisticOutput) - }; + var properties = new PipingOutputContextProperties(new TestPipingOutput(), semiProbabilisticOutput); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PropertyInfos/PipingOutputPropertyInfoTest.cs =================================================================== diff -u -rde1df79104237af15cf0ae31df35c9d0e66337ec -r9820628e44f481c52fba16bafbbf4aa0739afef0 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PropertyInfos/PipingOutputPropertyInfoTest.cs (.../PipingOutputPropertyInfoTest.cs) (revision de1df79104237af15cf0ae31df35c9d0e66337ec) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PropertyInfos/PipingOutputPropertyInfoTest.cs (.../PipingOutputPropertyInfoTest.cs) (revision 9820628e44f481c52fba16bafbbf4aa0739afef0) @@ -39,7 +39,7 @@ public void SetUp() { plugin = new PipingPlugin(); - info = plugin.GetPropertyInfos().First(tni => tni.PropertyObjectType == typeof(PipingOutputProperties)); + info = plugin.GetPropertyInfos().First(tni => tni.PropertyObjectType == typeof(PipingOutputContextProperties)); } [TearDown] @@ -66,7 +66,7 @@ IObjectProperties objectProperties = info.CreateInstance(context); // Assert - Assert.IsInstanceOf(objectProperties); + Assert.IsInstanceOf(objectProperties); Assert.AreSame(output, objectProperties.Data); } } Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/Ringtoets.Piping.Plugin.Test.csproj =================================================================== diff -u -rac96d7c315129af851634ed5a4a6800b59ede718 -r9820628e44f481c52fba16bafbbf4aa0739afef0 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/Ringtoets.Piping.Plugin.Test.csproj (.../Ringtoets.Piping.Plugin.Test.csproj) (revision ac96d7c315129af851634ed5a4a6800b59ede718) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/Ringtoets.Piping.Plugin.Test.csproj (.../Ringtoets.Piping.Plugin.Test.csproj) (revision 9820628e44f481c52fba16bafbbf4aa0739afef0) @@ -45,6 +45,7 @@ +