Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs =================================================================== diff -u -rac14886a0d7286d369e139d7f536a3a3c8311c68 -rdae442c6068528e9ef8c3862902594ab6c9e7dc1 --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision ac14886a0d7286d369e139d7f536a3a3c8311c68) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision dae442c6068528e9ef8c3862902594ab6c9e7dc1) @@ -225,6 +225,8 @@ GetViewName = (view, context) => Resources.OvertoppingOutput_DisplayName, GetViewData = context => context.WrappedData, CloseForData = RiskeerPluginHelper.ShouldCloseViewWithCalculationData, + AdditionalDataCheck = context => context.WrappedData.HasOutput + && context.WrappedData.Output.OvertoppingOutput.HasGeneralResult, CreateInstance = context => new OvertoppingOutputGeneralResultFaultTreeIllustrationPointView( context.WrappedData, () => context.WrappedData.Output?.OvertoppingOutput.GeneralResult) }; @@ -235,6 +237,9 @@ GetViewName = (view, context) => GrassCoverErosionInwardsFormsResources.DikeHeight_DisplayName, GetViewData = context => context.WrappedData, CloseForData = RiskeerPluginHelper.ShouldCloseViewWithCalculationData, + AdditionalDataCheck = context => context.WrappedData.HasOutput + && context.WrappedData.Output.DikeHeightOutput != null + && context.WrappedData.Output.DikeHeightOutput.HasGeneralResult, CreateInstance = context => new DikeHeightOutputGeneralResultFaultTreeIllustrationPointView( context.WrappedData, () => context.WrappedData.Output?.DikeHeightOutput?.GeneralResult) }; @@ -245,6 +250,9 @@ GetViewName = (view, context) => GrassCoverErosionInwardsFormsResources.OvertoppingRate_DisplayName, GetViewData = context => context.WrappedData, CloseForData = RiskeerPluginHelper.ShouldCloseViewWithCalculationData, + AdditionalDataCheck = context => context.WrappedData.HasOutput + && context.WrappedData.Output.OvertoppingRateOutput != null + && context.WrappedData.Output.OvertoppingRateOutput.HasGeneralResult, CreateInstance = context => new OvertoppingRateOutputGeneralResultFaultTreeIllustrationPointView( context.WrappedData, () => context.WrappedData.Output?.OvertoppingRateOutput?.GeneralResult) }; Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/DikeHeightOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs =================================================================== diff -u -r464ceae7e716691f38e869f391520703b2f5e188 -rdae442c6068528e9ef8c3862902594ab6c9e7dc1 --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/DikeHeightOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs (.../DikeHeightOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs) (revision 464ceae7e716691f38e869f391520703b2f5e188) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/DikeHeightOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs (.../DikeHeightOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs) (revision dae442c6068528e9ef8c3862902594ab6c9e7dc1) @@ -25,6 +25,7 @@ using Riskeer.Common.Data.Calculation; using Riskeer.Common.Data.TestUtil.IllustrationPoints; using Riskeer.GrassCoverErosionInwards.Data; +using Riskeer.GrassCoverErosionInwards.Data.TestUtil; using Riskeer.GrassCoverErosionInwards.Forms.PresentationObjects; using Riskeer.GrassCoverErosionInwards.Forms.Views; @@ -35,6 +36,25 @@ public class DikeHeightOutputGeneralResultFaultTreeIllustrationPointViewInfoTest : GrassCoverErosionInwardsOutputViewInfoTestBase { + [Test] + public void AdditionalDataCheck_CalculationWithoutDikeHeightOutput_ReturnsFalse() + { + // Setup + var calculation = new GrassCoverErosionInwardsCalculation + { + Output = new GrassCoverErosionInwardsOutput(new TestOvertoppingOutput(0.1), + null, + new TestOvertoppingRateOutput(0.2)) + }; + DikeHeightOutputContext context = GetContext(calculation); + + // Call + bool additionalDataCheck = Info.AdditionalDataCheck(context); + + // Assert + Assert.IsFalse(additionalDataCheck); + } + protected override string ViewName => "HBN"; protected override IView GetView(ICalculation data) Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/GrassCoverErosionInwardsOutputViewInfoTestBase.cs =================================================================== diff -u -r464ceae7e716691f38e869f391520703b2f5e188 -rdae442c6068528e9ef8c3862902594ab6c9e7dc1 --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/GrassCoverErosionInwardsOutputViewInfoTestBase.cs (.../GrassCoverErosionInwardsOutputViewInfoTestBase.cs) (revision 464ceae7e716691f38e869f391520703b2f5e188) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/GrassCoverErosionInwardsOutputViewInfoTestBase.cs (.../GrassCoverErosionInwardsOutputViewInfoTestBase.cs) (revision dae442c6068528e9ef8c3862902594ab6c9e7dc1) @@ -28,10 +28,12 @@ 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.Forms.Properties; using Riskeer.Common.Plugin.TestUtil; using Riskeer.GrassCoverErosionInwards.Data; +using Riskeer.GrassCoverErosionInwards.Data.TestUtil; using Riskeer.GrassCoverErosionInwards.Forms.PresentationObjects; namespace Riskeer.GrassCoverErosionInwards.Plugin.Test.ViewInfos @@ -46,18 +48,22 @@ where TView : IView { private GrassCoverErosionInwardsPlugin plugin; - private ViewInfo info; /// /// Gets the name of the view. /// protected abstract string ViewName { get; } + /// + /// Gets the . + /// + protected ViewInfo Info { get; private set; } + [SetUp] public void SetUp() { plugin = new GrassCoverErosionInwardsPlugin(); - info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(TView)); + Info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(TView)); } [TearDown] @@ -70,16 +76,16 @@ public void Initialized_Always_ExpectedPropertiesSet() { // Assert - Assert.AreEqual(typeof(TOutputContext), info.DataType); - Assert.AreEqual(typeof(GrassCoverErosionInwardsCalculation), info.ViewDataType); - TestHelper.AssertImagesAreEqual(Resources.GeneralOutputIcon, info.Image); + Assert.AreEqual(typeof(TOutputContext), Info.DataType); + Assert.AreEqual(typeof(GrassCoverErosionInwardsCalculation), Info.ViewDataType); + TestHelper.AssertImagesAreEqual(Resources.GeneralOutputIcon, Info.Image); } [Test] public void GetViewName_Always_ReturnsViewName() { // Call - string viewName = info.GetViewName(null, null); + string viewName = Info.GetViewName(null, null); // Assert Assert.AreEqual(ViewName, viewName); @@ -93,11 +99,59 @@ TOutputContext context = GetContext(calculation); // Call - object viewData = info.GetViewData(context); + object viewData = Info.GetViewData(context); // Assert Assert.AreSame(calculation, viewData); } + + [Test] + public void AdditionalDataCheck_CalculationWithoutOutput_ReturnsFalse() + { + // Setup + var calculation = new GrassCoverErosionInwardsCalculation(); + TOutputContext context = GetContext(calculation); + + // Call + bool additionalDataCheck = Info.AdditionalDataCheck(context); + + // Assert + Assert.IsFalse(additionalDataCheck); + } + + [Test] + public void AdditionalDataCheck_CalculationWithOutputWithoutIllustrationPoints_ReturnsFalse() + { + // Setup + var calculation = new GrassCoverErosionInwardsCalculation + { + Output = new TestGrassCoverErosionInwardsOutput() + }; + TOutputContext context = GetContext(calculation); + + // Call + bool additionalDataCheck = Info.AdditionalDataCheck(context); + + // Assert + Assert.IsFalse(additionalDataCheck); + } + + [Test] + public void AdditionalDataCheck_CalculationWithOutputAndIllustrationPoints_ReturnsTrue() + { + // Setup + var calculation = new GrassCoverErosionInwardsCalculation + { + Output = new TestGrassCoverErosionInwardsOutput(new TestGeneralResultFaultTreeIllustrationPoint()) + }; + TOutputContext context = GetContext(calculation); + + // Call + bool additionalDataCheck = Info.AdditionalDataCheck(context); + + // Assert + Assert.IsTrue(additionalDataCheck); + } [Test] public void CreateInstance_WithContext_CreatesInstanceOfViewType() @@ -107,7 +161,7 @@ TOutputContext context = GetContext(calculation); // Call - IView view = info.CreateInstance(context); + IView view = Info.CreateInstance(context); // Assert Assert.IsInstanceOf(view); @@ -122,7 +176,7 @@ protected override bool ShouldCloseMethod(IView view, object o) { - return info.CloseForData(view, o); + return Info.CloseForData(view, o); } protected override ICalculation GetCalculation() Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/OvertoppingRateOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs =================================================================== diff -u -rac14886a0d7286d369e139d7f536a3a3c8311c68 -rdae442c6068528e9ef8c3862902594ab6c9e7dc1 --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/OvertoppingRateOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs (.../OvertoppingRateOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs) (revision ac14886a0d7286d369e139d7f536a3a3c8311c68) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/OvertoppingRateOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs (.../OvertoppingRateOutputGeneralResultFaultTreeIllustrationPointViewInfoTest.cs) (revision dae442c6068528e9ef8c3862902594ab6c9e7dc1) @@ -24,6 +24,7 @@ using Riskeer.Common.Data.Calculation; using Riskeer.Common.Data.TestUtil.IllustrationPoints; using Riskeer.GrassCoverErosionInwards.Data; +using Riskeer.GrassCoverErosionInwards.Data.TestUtil; using Riskeer.GrassCoverErosionInwards.Forms.PresentationObjects; using Riskeer.GrassCoverErosionInwards.Forms.Views; @@ -33,6 +34,25 @@ public class OvertoppingRateOutputGeneralResultFaultTreeIllustrationPointViewInfoTest : GrassCoverErosionInwardsOutputViewInfoTestBase { + [Test] + public void AdditionalDataCheck_CalculationWithoutOvertoppingRateOutput_ReturnsFalse() + { + // Setup + var calculation = new GrassCoverErosionInwardsCalculation + { + Output = new GrassCoverErosionInwardsOutput(new TestOvertoppingOutput(0.1), + new TestDikeHeightOutput(0.2), + null) + }; + OvertoppingRateOutputContext context = GetContext(calculation); + + // Call + bool additionalDataCheck = Info.AdditionalDataCheck(context); + + // Assert + Assert.IsFalse(additionalDataCheck); + } + protected override string ViewName => "Overslagdebiet"; protected override IView GetView(ICalculation data)