Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticFaultTreePipingProfileSpecificOutputViewInfoTest.cs =================================================================== diff -u -r7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9 -rfe6330bbc3dfa592b135b217de90d8c6b1e24e1f --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticFaultTreePipingProfileSpecificOutputViewInfoTest.cs (.../ProbabilisticFaultTreePipingProfileSpecificOutputViewInfoTest.cs) (revision 7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticFaultTreePipingProfileSpecificOutputViewInfoTest.cs (.../ProbabilisticFaultTreePipingProfileSpecificOutputViewInfoTest.cs) (revision fe6330bbc3dfa592b135b217de90d8c6b1e24e1f) @@ -19,244 +19,51 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Linq; using System.Threading; using Core.Common.Controls.Views; -using Core.Common.Gui.Plugin; -using Core.Common.TestUtil; using NUnit.Framework; -using Rhino.Mocks; using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Calculation; -using Riskeer.Common.Data.FailureMechanism; -using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Data.TestUtil.IllustrationPoints; -using Riskeer.Common.Forms.PresentationObjects; -using Riskeer.Common.Plugin.TestUtil; using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; -using Riskeer.Piping.Data.SoilProfile; using Riskeer.Piping.Data.TestUtil; -using Riskeer.Piping.Forms.PresentationObjects; using Riskeer.Piping.Forms.PresentationObjects.Probabilistic; using Riskeer.Piping.Forms.Views; -using Riskeer.Piping.Primitives; -using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources; namespace Riskeer.Piping.Plugin.Test.ViewInfos { [TestFixture] [Apartment(ApartmentState.STA)] - public class ProbabilisticFaultTreePipingProfileSpecificOutputViewInfoTest + public class ProbabilisticFaultTreePipingProfileSpecificOutputViewInfoTest : ProbabilisticPipingOutputViewInfoTestBase< + ProbabilisticFaultTreePipingProfileSpecificOutputView, ProbabilisticPipingProfileSpecificOutputContext> { - private PipingPlugin plugin; - private ViewInfo info; - - [SetUp] - public void SetUp() - { - plugin = new PipingPlugin(); - info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(ProbabilisticFaultTreePipingProfileSpecificOutputView)); - } - - [TearDown] - public void TearDown() - { - plugin.Dispose(); - } - - [Test] - public void Initialized_Always_ExpectedPropertiesSet() - { - // Assert - Assert.AreEqual(typeof(ProbabilisticPipingProfileSpecificOutputContext), info.DataType); - Assert.AreEqual(typeof(ProbabilisticPipingCalculationScenario), info.ViewDataType); - TestHelper.AssertImagesAreEqual(RiskeerCommonFormsResources.GeneralOutputIcon, info.Image); - } - - [Test] - public void GetViewData_WithContext_ReturnsWrappedCalculationScenario() - { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var calculationScenario = new ProbabilisticPipingCalculationScenario(); - var context = new ProbabilisticPipingProfileSpecificOutputContext(calculationScenario, new PipingFailureMechanism(), assessmentSection); - - // Call - object viewData = info.GetViewData(context); - - // Assert - Assert.AreSame(calculationScenario, viewData); - mocks.VerifyAll(); - } - - [Test] - public void GetViewName_Always_ReturnsCorrectViewName() - { - // Call - string viewName = info.GetViewName(null, null); - - // Assert - Assert.AreEqual("Sterkte berekening doorsnede", viewName); - } + protected override string ViewName => "Sterkte berekening doorsnede"; - [Test] - public void AdditionalDataCheck_CalculationWithoutOutput_ReturnsTrue() + protected override IView GetView(ICalculation data) { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var context = new ProbabilisticPipingProfileSpecificOutputContext( - new ProbabilisticPipingCalculationScenario(), new PipingFailureMechanism(), assessmentSection); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsTrue(additionalDataCheck); - mocks.VerifyAll(); + return new ProbabilisticFaultTreePipingProfileSpecificOutputView( + (ProbabilisticPipingCalculationScenario) data, + () => new TestGeneralResultFaultTreeIllustrationPoint()); } - [Test] - public void AdditionalDataCheck_CalculationWithoutFaultTreeOutput_ReturnsFalse() + protected override ProbabilisticPipingProfileSpecificOutputContext GetContext( + ProbabilisticPipingCalculationScenario calculationScenario, IAssessmentSection assessmentSection) { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithIllustrationPoints() - }; - - var context = new ProbabilisticPipingProfileSpecificOutputContext( - calculation, new PipingFailureMechanism(), assessmentSection); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsFalse(additionalDataCheck); - mocks.VerifyAll(); + return new ProbabilisticPipingProfileSpecificOutputContext( + calculationScenario, new PipingFailureMechanism(), assessmentSection); } - [Test] - public void AdditionalDataCheck_CalculationWithFaultTreeOutput_ReturnsTrue() + protected override ProbabilisticPipingOutput GetOutputWithCorrectIllustrationPoints() { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = new ProbabilisticPipingOutput( - PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(), - PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput()) - }; - - var context = new ProbabilisticPipingProfileSpecificOutputContext( - calculation, new PipingFailureMechanism(), assessmentSection); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsTrue(additionalDataCheck); - mocks.VerifyAll(); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput()); } - [Test] - public void CreateInstance_WithContext_ReturnsView() + protected override ProbabilisticPipingOutput GetOutputWithIncorrectIllustrationPoints() { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var context = new ProbabilisticPipingProfileSpecificOutputContext(new ProbabilisticPipingCalculationScenario(), new PipingFailureMechanism(), assessmentSection); - - // Call - IView view = info.CreateInstance(context); - - // Assert - Assert.IsInstanceOf(view); - mocks.VerifyAll(); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput()); } - - [TestFixture] - public class ProbabilisticPipingProfileSpecificOutputViewTester : ShouldCloseViewWithCalculationDataTester - { - protected override bool ShouldCloseMethod(IView view, object o) - { - using (var plugin = new PipingPlugin()) - { - return plugin.GetViewInfos() - .First(tni => tni.ViewType == typeof(ProbabilisticFaultTreePipingProfileSpecificOutputView)) - .CloseForData(view, o); - } - } - - protected override IView GetView(ICalculation data) - { - return new ProbabilisticFaultTreePipingProfileSpecificOutputView( - (ProbabilisticPipingCalculationScenario) data, - () => new TestGeneralResultFaultTreeIllustrationPoint()); - } - - protected override ICalculation GetCalculation() - { - return new ProbabilisticPipingCalculationScenario(); - } - - protected override ICalculationContext GetCalculationContextWithCalculation() - { - return new ProbabilisticPipingCalculationScenarioContext( - new ProbabilisticPipingCalculationScenario(), - new CalculationGroup(), - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override ICalculationContext GetCalculationGroupContextWithCalculation() - { - return new PipingCalculationGroupContext( - new CalculationGroup - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - }, - null, - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override IFailureMechanismContext GetFailureMechanismContextWithCalculation() - { - return new PipingFailureMechanismContext( - new PipingFailureMechanism - { - CalculationsGroup = - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - } - }, new AssessmentSectionStub()); - } - } } } \ No newline at end of file Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticFaultTreePipingSectionSpecificOutputViewInfoTest.cs =================================================================== diff -u -r7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9 -rfe6330bbc3dfa592b135b217de90d8c6b1e24e1f --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticFaultTreePipingSectionSpecificOutputViewInfoTest.cs (.../ProbabilisticFaultTreePipingSectionSpecificOutputViewInfoTest.cs) (revision 7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticFaultTreePipingSectionSpecificOutputViewInfoTest.cs (.../ProbabilisticFaultTreePipingSectionSpecificOutputViewInfoTest.cs) (revision fe6330bbc3dfa592b135b217de90d8c6b1e24e1f) @@ -19,215 +19,50 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Linq; using System.Threading; using Core.Common.Controls.Views; -using Core.Common.Gui.Plugin; -using Core.Common.TestUtil; using NUnit.Framework; +using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Calculation; -using Riskeer.Common.Data.FailureMechanism; -using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Data.TestUtil.IllustrationPoints; -using Riskeer.Common.Forms.PresentationObjects; -using Riskeer.Common.Plugin.TestUtil; -using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; -using Riskeer.Piping.Data.SoilProfile; using Riskeer.Piping.Data.TestUtil; -using Riskeer.Piping.Forms.PresentationObjects; using Riskeer.Piping.Forms.PresentationObjects.Probabilistic; using Riskeer.Piping.Forms.Views; -using Riskeer.Piping.Primitives; using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources; namespace Riskeer.Piping.Plugin.Test.ViewInfos { [TestFixture] [Apartment(ApartmentState.STA)] - public class ProbabilisticFaultTreePipingSectionSpecificOutputViewInfoTest + public class ProbabilisticFaultTreePipingSectionSpecificOutputViewInfoTest : ProbabilisticPipingOutputViewInfoTestBase< + ProbabilisticFaultTreePipingSectionSpecificOutputView, ProbabilisticPipingSectionSpecificOutputContext> { - private PipingPlugin plugin; - private ViewInfo info; + protected override string ViewName => "Sterkte berekening vak"; - [SetUp] - public void SetUp() + protected override IView GetView(ICalculation data) { - plugin = new PipingPlugin(); - info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(ProbabilisticFaultTreePipingSectionSpecificOutputView)); + return new ProbabilisticFaultTreePipingSectionSpecificOutputView( + (ProbabilisticPipingCalculationScenario) data, + () => new TestGeneralResultFaultTreeIllustrationPoint()); } - [TearDown] - public void TearDown() + protected override ProbabilisticPipingSectionSpecificOutputContext GetContext( + ProbabilisticPipingCalculationScenario calculationScenario, IAssessmentSection assessmentSection) { - plugin.Dispose(); + return new ProbabilisticPipingSectionSpecificOutputContext(calculationScenario); } - [Test] - public void Initialized_Always_ExpectedPropertiesSet() + protected override ProbabilisticPipingOutput GetOutputWithCorrectIllustrationPoints() { - // Assert - Assert.AreEqual(typeof(ProbabilisticPipingSectionSpecificOutputContext), info.DataType); - Assert.AreEqual(typeof(ProbabilisticPipingCalculationScenario), info.ViewDataType); - TestHelper.AssertImagesAreEqual(RiskeerCommonFormsResources.GeneralOutputIcon, info.Image); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput()); } - [Test] - public void GetViewData_WithContext_ReturnsWrappedCalculationScenario() + protected override ProbabilisticPipingOutput GetOutputWithIncorrectIllustrationPoints() { - // Setup - var calculationScenario = new ProbabilisticPipingCalculationScenario(); - var context = new ProbabilisticPipingSectionSpecificOutputContext(calculationScenario); - - // Call - object viewData = info.GetViewData(context); - - // Assert - Assert.AreSame(calculationScenario, viewData); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput()); } - - [Test] - public void GetViewName_Always_ReturnsCorrectViewName() - { - // Call - string viewName = info.GetViewName(null, null); - - // Assert - Assert.AreEqual("Sterkte berekening vak", viewName); - } - - [Test] - public void AdditionalDataCheck_CalculationWithoutOutput_ReturnsTrue() - { - // Setup - var context = new ProbabilisticPipingSectionSpecificOutputContext( - new ProbabilisticPipingCalculationScenario()); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsTrue(additionalDataCheck); - } - - [Test] - public void AdditionalDataCheck_CalculationWithoutFaultTreeOutput_ReturnsFalse() - { - // Setup - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithIllustrationPoints() - }; - - var context = new ProbabilisticPipingSectionSpecificOutputContext(calculation); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsFalse(additionalDataCheck); - } - - [Test] - public void AdditionalDataCheck_CalculationWithFaultTreeOutput_ReturnsTrue() - { - // Setup - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = new ProbabilisticPipingOutput( - PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(), - PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput()) - }; - - var context = new ProbabilisticPipingSectionSpecificOutputContext(calculation); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsTrue(additionalDataCheck); - } - - [Test] - public void CreateInstance_WithContext_ReturnsView() - { - // Setup - var context = new ProbabilisticPipingSectionSpecificOutputContext(new ProbabilisticPipingCalculationScenario()); - - // Call - IView view = info.CreateInstance(context); - - // Assert - Assert.IsInstanceOf(view); - } - - [TestFixture] - public class ProbabilisticPipingSectionSpecificOutputViewTester : ShouldCloseViewWithCalculationDataTester - { - protected override bool ShouldCloseMethod(IView view, object o) - { - using (var plugin = new PipingPlugin()) - { - return plugin.GetViewInfos() - .First(tni => tni.ViewType == typeof(ProbabilisticFaultTreePipingSectionSpecificOutputView)) - .CloseForData(view, o); - } - } - - protected override IView GetView(ICalculation data) - { - return new ProbabilisticFaultTreePipingSectionSpecificOutputView( - (ProbabilisticPipingCalculationScenario) data, - () => new TestGeneralResultFaultTreeIllustrationPoint()); - } - - protected override ICalculation GetCalculation() - { - return new ProbabilisticPipingCalculationScenario(); - } - - protected override ICalculationContext GetCalculationContextWithCalculation() - { - return new ProbabilisticPipingCalculationScenarioContext( - new ProbabilisticPipingCalculationScenario(), - new CalculationGroup(), - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override ICalculationContext GetCalculationGroupContextWithCalculation() - { - return new PipingCalculationGroupContext( - new CalculationGroup - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - }, - null, - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override IFailureMechanismContext GetFailureMechanismContextWithCalculation() - { - return new PipingFailureMechanismContext( - new PipingFailureMechanism - { - CalculationsGroup = - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - } - }, new AssessmentSectionStub()); - } - } } } \ No newline at end of file Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticPipingOutputViewInfoTestBase.cs =================================================================== diff -u --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticPipingOutputViewInfoTestBase.cs (revision 0) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticPipingOutputViewInfoTestBase.cs (revision fe6330bbc3dfa592b135b217de90d8c6b1e24e1f) @@ -0,0 +1,258 @@ +// Copyright (C) Stichting Deltares 2019. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer 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.Linq; +using System.Threading; +using Core.Common.Controls.Views; +using Core.Common.Gui.Plugin; +using Core.Common.TestUtil; +using NUnit.Framework; +using Rhino.Mocks; +using Riskeer.Common.Data.AssessmentSection; +using Riskeer.Common.Data.Calculation; +using Riskeer.Common.Data.FailureMechanism; +using Riskeer.Common.Data.TestUtil; +using Riskeer.Common.Forms.PresentationObjects; +using Riskeer.Common.Plugin.TestUtil; +using Riskeer.Piping.Data; +using Riskeer.Piping.Data.Probabilistic; +using Riskeer.Piping.Data.SoilProfile; +using Riskeer.Piping.Data.TestUtil; +using Riskeer.Piping.Forms.PresentationObjects; +using Riskeer.Piping.Forms.PresentationObjects.Probabilistic; +using Riskeer.Piping.Primitives; +using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources; + +namespace Riskeer.Piping.Plugin.Test.ViewInfos +{ + /// + /// Base class for probabilistic piping output view into tests. + /// + /// The type of view. + /// The type of output context. + [Apartment(ApartmentState.STA)] + public abstract class ProbabilisticPipingOutputViewInfoTestBase : ShouldCloseViewWithCalculationDataTester + where TView : IView + { + private PipingPlugin plugin; + private ViewInfo info; + + /// + /// Gets the name of the view. + /// + protected abstract string ViewName { get; } + + [SetUp] + public void SetUp() + { + plugin = new PipingPlugin(); + info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(TView)); + } + + [TearDown] + public void TearDown() + { + plugin.Dispose(); + } + + [Test] + public void Initialized_Always_ExpectedPropertiesSet() + { + // Assert + Assert.AreEqual(typeof(TOutputContext), info.DataType); + Assert.AreEqual(typeof(ProbabilisticPipingCalculationScenario), info.ViewDataType); + TestHelper.AssertImagesAreEqual(RiskeerCommonFormsResources.GeneralOutputIcon, info.Image); + } + + [Test] + public void GetViewName_Always_ReturnsViewName() + { + // Call + string viewName = info.GetViewName(null, null); + + // Assert + Assert.AreEqual(ViewName, viewName); + } + + [Test] + public void GetViewData_WithContext_ReturnsWrappedCalculationScenario() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var calculationScenario = new ProbabilisticPipingCalculationScenario(); + TOutputContext context = GetContext(calculationScenario, assessmentSection); + + // Call + object viewData = info.GetViewData(context); + + // Assert + Assert.AreSame(calculationScenario, viewData); + mocks.VerifyAll(); + } + + [Test] + public void AdditionalDataCheck_CalculationWithOutputWithoutIllustrationPoints_ReturnsFalse() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var calculationScenario = new ProbabilisticPipingCalculationScenario + { + Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithoutIllustrationPoints() + }; + TOutputContext context = GetContext(calculationScenario, assessmentSection); + + // Call + bool additionalDataCheck = info.AdditionalDataCheck(context); + + // Assert + Assert.IsFalse(additionalDataCheck); + mocks.VerifyAll(); + } + + [Test] + public void AdditionalDataCheck_CalculationWithOutputWithIncorrectIllustrationPointsType_ReturnsFalse() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var calculationScenario = new ProbabilisticPipingCalculationScenario + { + Output = GetOutputWithIncorrectIllustrationPoints() + }; + TOutputContext context = GetContext(calculationScenario, assessmentSection); + + // Call + bool additionalDataCheck = info.AdditionalDataCheck(context); + + // Assert + Assert.IsFalse(additionalDataCheck); + mocks.VerifyAll(); + } + + [Test] + public void AdditionalDataCheck_CalculationWithOutputWithCorrectIllustrationPointsType_ReturnsTrue() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var calculationScenario = new ProbabilisticPipingCalculationScenario + { + Output = GetOutputWithCorrectIllustrationPoints() + }; + TOutputContext context = GetContext(calculationScenario, assessmentSection); + + // Call + bool additionalDataCheck = info.AdditionalDataCheck(context); + + // Assert + Assert.IsTrue(additionalDataCheck); + mocks.VerifyAll(); + } + + [Test] + public void CreateInstance_WithContext_ReturnsView() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + TOutputContext context = GetContext(new ProbabilisticPipingCalculationScenario(), assessmentSection); + + // Call + IView view = info.CreateInstance(context); + + // Assert + Assert.IsInstanceOf(view); + mocks.VerifyAll(); + } + + protected abstract TOutputContext GetContext(ProbabilisticPipingCalculationScenario calculationScenario, + IAssessmentSection assessmentSection); + + protected abstract ProbabilisticPipingOutput GetOutputWithCorrectIllustrationPoints(); + + protected abstract ProbabilisticPipingOutput GetOutputWithIncorrectIllustrationPoints(); + + protected override bool ShouldCloseMethod(IView view, object o) + { + return info.CloseForData(view, o); + } + + protected override ICalculation GetCalculation() + { + return new ProbabilisticPipingCalculationScenario(); + } + + protected override ICalculationContext GetCalculationContextWithCalculation() + { + return new ProbabilisticPipingCalculationScenarioContext( + new ProbabilisticPipingCalculationScenario(), + new CalculationGroup(), + Enumerable.Empty(), + Enumerable.Empty(), + new PipingFailureMechanism(), + new AssessmentSectionStub()); + } + + protected override ICalculationContext GetCalculationGroupContextWithCalculation() + { + return new PipingCalculationGroupContext( + new CalculationGroup + { + Children = + { + new ProbabilisticPipingCalculationScenario() + } + }, + null, + Enumerable.Empty(), + Enumerable.Empty(), + new PipingFailureMechanism(), + new AssessmentSectionStub()); + } + + protected override IFailureMechanismContext GetFailureMechanismContextWithCalculation() + { + return new PipingFailureMechanismContext( + new PipingFailureMechanism + { + CalculationsGroup = + { + Children = + { + new ProbabilisticPipingCalculationScenario() + } + } + }, new AssessmentSectionStub()); + } + } +} \ No newline at end of file Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticSubMechanismPipingProfileSpecificOutputViewInfoTest.cs =================================================================== diff -u -r7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9 -rfe6330bbc3dfa592b135b217de90d8c6b1e24e1f --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticSubMechanismPipingProfileSpecificOutputViewInfoTest.cs (.../ProbabilisticSubMechanismPipingProfileSpecificOutputViewInfoTest.cs) (revision 7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticSubMechanismPipingProfileSpecificOutputViewInfoTest.cs (.../ProbabilisticSubMechanismPipingProfileSpecificOutputViewInfoTest.cs) (revision fe6330bbc3dfa592b135b217de90d8c6b1e24e1f) @@ -19,244 +19,51 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Linq; using System.Threading; using Core.Common.Controls.Views; -using Core.Common.Gui.Plugin; -using Core.Common.TestUtil; using NUnit.Framework; -using Rhino.Mocks; using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Calculation; -using Riskeer.Common.Data.FailureMechanism; -using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Data.TestUtil.IllustrationPoints; -using Riskeer.Common.Forms.PresentationObjects; -using Riskeer.Common.Plugin.TestUtil; using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; -using Riskeer.Piping.Data.SoilProfile; using Riskeer.Piping.Data.TestUtil; -using Riskeer.Piping.Forms.PresentationObjects; using Riskeer.Piping.Forms.PresentationObjects.Probabilistic; using Riskeer.Piping.Forms.Views; -using Riskeer.Piping.Primitives; using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources; namespace Riskeer.Piping.Plugin.Test.ViewInfos { [TestFixture] [Apartment(ApartmentState.STA)] - public class ProbabilisticSubMechanismPipingProfileSpecificOutputViewInfoTest + public class ProbabilisticSubMechanismPipingProfileSpecificOutputViewInfoTest : ProbabilisticPipingOutputViewInfoTestBase< + ProbabilisticSubMechanismPipingProfileSpecificOutputView, ProbabilisticPipingProfileSpecificOutputContext> { - private PipingPlugin plugin; - private ViewInfo info; + protected override string ViewName => "Sterkte berekening doorsnede"; - [SetUp] - public void SetUp() + protected override IView GetView(ICalculation data) { - plugin = new PipingPlugin(); - info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(ProbabilisticSubMechanismPipingProfileSpecificOutputView)); + return new ProbabilisticSubMechanismPipingProfileSpecificOutputView( + (ProbabilisticPipingCalculationScenario) data, + () => new TestGeneralResultSubMechanismIllustrationPoint()); } - [TearDown] - public void TearDown() + protected override ProbabilisticPipingProfileSpecificOutputContext GetContext(ProbabilisticPipingCalculationScenario calculationScenario, IAssessmentSection assessmentSection) { - plugin.Dispose(); + return new ProbabilisticPipingProfileSpecificOutputContext( + calculationScenario, new PipingFailureMechanism(), assessmentSection); } - [Test] - public void Initialized_Always_ExpectedPropertiesSet() + protected override ProbabilisticPipingOutput GetOutputWithCorrectIllustrationPoints() { - // Assert - Assert.AreEqual(typeof(ProbabilisticPipingProfileSpecificOutputContext), info.DataType); - Assert.AreEqual(typeof(ProbabilisticPipingCalculationScenario), info.ViewDataType); - TestHelper.AssertImagesAreEqual(RiskeerCommonFormsResources.GeneralOutputIcon, info.Image); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput()); } - [Test] - public void GetViewData_WithContext_ReturnsWrappedCalculationScenario() + protected override ProbabilisticPipingOutput GetOutputWithIncorrectIllustrationPoints() { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var calculationScenario = new ProbabilisticPipingCalculationScenario(); - var context = new ProbabilisticPipingProfileSpecificOutputContext(calculationScenario, new PipingFailureMechanism(), assessmentSection); - - // Call - object viewData = info.GetViewData(context); - - // Assert - Assert.AreSame(calculationScenario, viewData); - mocks.VerifyAll(); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput()); } - - [Test] - public void GetViewName_Always_ReturnsCorrectViewName() - { - // Call - string viewName = info.GetViewName(null, null); - - // Assert - Assert.AreEqual("Sterkte berekening doorsnede", viewName); - } - - [Test] - public void AdditionalDataCheck_CalculationWithoutOutput_ReturnsFalse() - { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var context = new ProbabilisticPipingProfileSpecificOutputContext( - new ProbabilisticPipingCalculationScenario(), new PipingFailureMechanism(), assessmentSection); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsFalse(additionalDataCheck); - mocks.VerifyAll(); - } - - [Test] - public void AdditionalDataCheck_CalculationWithoutSubMechanismOutput_ReturnsFalse() - { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithIllustrationPoints() - }; - - var context = new ProbabilisticPipingProfileSpecificOutputContext( - calculation, new PipingFailureMechanism(), assessmentSection); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsFalse(additionalDataCheck); - mocks.VerifyAll(); - } - - [Test] - public void AdditionalDataCheck_CalculationWithSubMechanismOutput_ReturnsTrue() - { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = new ProbabilisticPipingOutput( - PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(), - PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput()) - }; - - var context = new ProbabilisticPipingProfileSpecificOutputContext( - calculation, new PipingFailureMechanism(), assessmentSection); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsTrue(additionalDataCheck); - mocks.VerifyAll(); - } - - [Test] - public void CreateInstance_WithContext_ReturnsView() - { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - - var context = new ProbabilisticPipingProfileSpecificOutputContext(new ProbabilisticPipingCalculationScenario(), new PipingFailureMechanism(), assessmentSection); - - // Call - IView view = info.CreateInstance(context); - - // Assert - Assert.IsInstanceOf(view); - mocks.VerifyAll(); - } - - [TestFixture] - public class ProbabilisticPipingProfileSpecificOutputViewTester : ShouldCloseViewWithCalculationDataTester - { - protected override bool ShouldCloseMethod(IView view, object o) - { - using (var plugin = new PipingPlugin()) - { - return plugin.GetViewInfos() - .First(tni => tni.ViewType == typeof(ProbabilisticFaultTreePipingProfileSpecificOutputView)) - .CloseForData(view, o); - } - } - - protected override IView GetView(ICalculation data) - { - return new ProbabilisticFaultTreePipingProfileSpecificOutputView( - (ProbabilisticPipingCalculationScenario) data, - () => new TestGeneralResultFaultTreeIllustrationPoint()); - } - - protected override ICalculation GetCalculation() - { - return new ProbabilisticPipingCalculationScenario(); - } - - protected override ICalculationContext GetCalculationContextWithCalculation() - { - return new ProbabilisticPipingCalculationScenarioContext( - new ProbabilisticPipingCalculationScenario(), - new CalculationGroup(), - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override ICalculationContext GetCalculationGroupContextWithCalculation() - { - return new PipingCalculationGroupContext( - new CalculationGroup - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - }, - null, - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override IFailureMechanismContext GetFailureMechanismContextWithCalculation() - { - return new PipingFailureMechanismContext( - new PipingFailureMechanism - { - CalculationsGroup = - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - } - }, new AssessmentSectionStub()); - } - } } } \ No newline at end of file Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticSubMechanismPipingSectionSpecificOutputViewInfoTest.cs =================================================================== diff -u -r7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9 -rfe6330bbc3dfa592b135b217de90d8c6b1e24e1f --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticSubMechanismPipingSectionSpecificOutputViewInfoTest.cs (.../ProbabilisticSubMechanismPipingSectionSpecificOutputViewInfoTest.cs) (revision 7bc26f9ffe61f97cdcabd1e4bcc21f0566abb2c9) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/ProbabilisticSubMechanismPipingSectionSpecificOutputViewInfoTest.cs (.../ProbabilisticSubMechanismPipingSectionSpecificOutputViewInfoTest.cs) (revision fe6330bbc3dfa592b135b217de90d8c6b1e24e1f) @@ -19,215 +19,49 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Linq; using System.Threading; using Core.Common.Controls.Views; -using Core.Common.Gui.Plugin; -using Core.Common.TestUtil; using NUnit.Framework; +using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Calculation; -using Riskeer.Common.Data.FailureMechanism; -using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Data.TestUtil.IllustrationPoints; -using Riskeer.Common.Forms.PresentationObjects; -using Riskeer.Common.Plugin.TestUtil; -using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; -using Riskeer.Piping.Data.SoilProfile; using Riskeer.Piping.Data.TestUtil; -using Riskeer.Piping.Forms.PresentationObjects; using Riskeer.Piping.Forms.PresentationObjects.Probabilistic; using Riskeer.Piping.Forms.Views; -using Riskeer.Piping.Primitives; using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources; namespace Riskeer.Piping.Plugin.Test.ViewInfos { [TestFixture] [Apartment(ApartmentState.STA)] - public class ProbabilisticSubMechanismPipingSectionSpecificOutputViewInfoTest + public class ProbabilisticSubMechanismPipingSectionSpecificOutputViewInfoTest : ProbabilisticPipingOutputViewInfoTestBase< + ProbabilisticSubMechanismPipingSectionSpecificOutputView, ProbabilisticPipingSectionSpecificOutputContext> { - private PipingPlugin plugin; - private ViewInfo info; + protected override string ViewName => "Sterkte berekening vak"; - [SetUp] - public void SetUp() + protected override IView GetView(ICalculation data) { - plugin = new PipingPlugin(); - info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(ProbabilisticSubMechanismPipingSectionSpecificOutputView)); + return new ProbabilisticSubMechanismPipingSectionSpecificOutputView( + (ProbabilisticPipingCalculationScenario) data, + () => new TestGeneralResultSubMechanismIllustrationPoint()); } - [TearDown] - public void TearDown() + protected override ProbabilisticPipingSectionSpecificOutputContext GetContext(ProbabilisticPipingCalculationScenario calculationScenario, IAssessmentSection assessmentSection) { - plugin.Dispose(); + return new ProbabilisticPipingSectionSpecificOutputContext(calculationScenario); } - [Test] - public void Initialized_Always_ExpectedPropertiesSet() + protected override ProbabilisticPipingOutput GetOutputWithCorrectIllustrationPoints() { - // Assert - Assert.AreEqual(typeof(ProbabilisticPipingSectionSpecificOutputContext), info.DataType); - Assert.AreEqual(typeof(ProbabilisticPipingCalculationScenario), info.ViewDataType); - TestHelper.AssertImagesAreEqual(RiskeerCommonFormsResources.GeneralOutputIcon, info.Image); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput()); } - [Test] - public void GetViewData_WithContext_ReturnsWrappedCalculationScenario() + protected override ProbabilisticPipingOutput GetOutputWithIncorrectIllustrationPoints() { - // Setup - var calculationScenario = new ProbabilisticPipingCalculationScenario(); - var context = new ProbabilisticPipingSectionSpecificOutputContext(calculationScenario); - - // Call - object viewData = info.GetViewData(context); - - // Assert - Assert.AreSame(calculationScenario, viewData); + return new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(), + PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput()); } - - [Test] - public void GetViewName_Always_ReturnsCorrectViewName() - { - // Call - string viewName = info.GetViewName(null, null); - - // Assert - Assert.AreEqual("Sterkte berekening vak", viewName); - } - - [Test] - public void AdditionalDataCheck_CalculationWithoutOutput_ReturnsFalse() - { - // Setup - var context = new ProbabilisticPipingSectionSpecificOutputContext( - new ProbabilisticPipingCalculationScenario()); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsFalse(additionalDataCheck); - } - - [Test] - public void AdditionalDataCheck_CalculationWithoutSubMechanismOutput_ReturnsFalse() - { - // Setup - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithIllustrationPoints() - }; - - var context = new ProbabilisticPipingSectionSpecificOutputContext(calculation); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsFalse(additionalDataCheck); - } - - [Test] - public void AdditionalDataCheck_CalculationWithSubMechanismOutput_ReturnsTrue() - { - // Setup - var calculation = new ProbabilisticPipingCalculationScenario - { - Output = new ProbabilisticPipingOutput( - PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(), - PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput()) - }; - - var context = new ProbabilisticPipingSectionSpecificOutputContext(calculation); - - // Call - bool additionalDataCheck = info.AdditionalDataCheck(context); - - // Assert - Assert.IsTrue(additionalDataCheck); - } - - [Test] - public void CreateInstance_WithContext_ReturnsView() - { - // Setup - var context = new ProbabilisticPipingSectionSpecificOutputContext(new ProbabilisticPipingCalculationScenario()); - - // Call - IView view = info.CreateInstance(context); - - // Assert - Assert.IsInstanceOf(view); - } - - [TestFixture] - public class ProbabilisticPipingSectionSpecificOutputViewTester : ShouldCloseViewWithCalculationDataTester - { - protected override bool ShouldCloseMethod(IView view, object o) - { - using (var plugin = new PipingPlugin()) - { - return plugin.GetViewInfos() - .First(tni => tni.ViewType == typeof(ProbabilisticFaultTreePipingSectionSpecificOutputView)) - .CloseForData(view, o); - } - } - - protected override IView GetView(ICalculation data) - { - return new ProbabilisticFaultTreePipingSectionSpecificOutputView( - (ProbabilisticPipingCalculationScenario) data, - () => new TestGeneralResultFaultTreeIllustrationPoint()); - } - - protected override ICalculation GetCalculation() - { - return new ProbabilisticPipingCalculationScenario(); - } - - protected override ICalculationContext GetCalculationContextWithCalculation() - { - return new ProbabilisticPipingCalculationScenarioContext( - new ProbabilisticPipingCalculationScenario(), - new CalculationGroup(), - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override ICalculationContext GetCalculationGroupContextWithCalculation() - { - return new PipingCalculationGroupContext( - new CalculationGroup - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - }, - null, - Enumerable.Empty(), - Enumerable.Empty(), - new PipingFailureMechanism(), - new AssessmentSectionStub()); - } - - protected override IFailureMechanismContext GetFailureMechanismContextWithCalculation() - { - return new PipingFailureMechanismContext( - new PipingFailureMechanism - { - CalculationsGroup = - { - Children = - { - new ProbabilisticPipingCalculationScenario() - } - } - }, new AssessmentSectionStub()); - } - } } } \ No newline at end of file