Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/DuneErosionPlugin.cs =================================================================== diff -u -r67d948d9ac33211b615a1d3c96ab3f472c0c163e -rc46ab97375853f37848d639772671873cfc08df5 --- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision 67d948d9ac33211b615a1d3c96ab3f472c0c163e) +++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision c46ab97375853f37848d639772671873cfc08df5) @@ -226,8 +226,8 @@ { Name = RiskeerCommonDataResources.HydraulicBoundaryConditions_DisplayName, Extension = Resources.DuneErosionPlugin_GetExportInfos_Boundary_conditions_file_filter_Extension, - CreateFileExporter = CreateDuneLocationCalculationsGroupContextFileExporter, - IsEnabled = IsDuneLocationCalculationsGroupContextExportMenuItemEnabled, + CreateFileExporter = CreateDuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextFileExporter, + IsEnabled = IsDuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextExportMenuItemEnabled, GetExportPath = () => ExportHelper.GetFilePath(GetInquiryHelper(), GetFileFilterGenerator()) }; } @@ -598,7 +598,7 @@ Resources.DuneErosionPlugin_GetExportInfos_Boundary_conditions_file_filter_Description); } - private static bool IsDuneLocationCalculationsGroupContextExportMenuItemEnabled(DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext context) + private static bool IsDuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextExportMenuItemEnabled(DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext context) { return context.FailureMechanism.CalculationsForMechanismSpecificFactorizedSignalingNorm.Any(calculation => calculation.Output != null) || context.FailureMechanism.CalculationsForMechanismSpecificSignalingNorm.Any(calculation => calculation.Output != null) @@ -607,7 +607,7 @@ || context.FailureMechanism.CalculationsForFactorizedLowerLimitNorm.Any(calculation => calculation.Output != null); } - private static IFileExporter CreateDuneLocationCalculationsGroupContextFileExporter(DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext context, string filePath) + private static IFileExporter CreateDuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextFileExporter(DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext context, string filePath) { return CreateDuneLocationCalculationsExporter(GetExportableDuneLocationCalculations(context.FailureMechanism, context.AssessmentSection), filePath); Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/ExportInfos/DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextExportInfoTest.cs =================================================================== diff -u --- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/ExportInfos/DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextExportInfoTest.cs (revision 0) +++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/ExportInfos/DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextExportInfoTest.cs (revision c46ab97375853f37848d639772671873cfc08df5) @@ -0,0 +1,181 @@ +// Copyright (C) Stichting Deltares 2021. 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; +using System.Collections.Generic; +using System.Linq; +using Core.Common.Base; +using Core.Common.Base.IO; +using Core.Common.TestUtil; +using Core.Gui.Plugin; +using NUnit.Framework; +using Rhino.Mocks; +using Riskeer.Common.Data.AssessmentSection; +using Riskeer.DuneErosion.Data; +using Riskeer.DuneErosion.Data.TestUtil; +using Riskeer.DuneErosion.Forms.PresentationObjects; +using Riskeer.DuneErosion.IO; +using CoreGuiResources = Core.Gui.Properties.Resources; + +namespace Riskeer.DuneErosion.Plugin.Test.ExportInfos +{ + [TestFixture] + public class DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContextExportInfoTest + { + [Test] + public void Initialized_Always_ExpectedPropertiesSet() + { + // Setup + using (var plugin = new DuneErosionPlugin()) + { + // Call + ExportInfo info = GetExportInfo(plugin); + + // Assert + Assert.IsNotNull(info.CreateFileExporter); + Assert.IsNotNull(info.IsEnabled); + Assert.AreEqual("Hydraulische belastingen", info.Name); + Assert.AreEqual("bnd", info.Extension); + Assert.AreEqual("Algemeen", info.Category); + TestHelper.AssertImagesAreEqual(CoreGuiResources.ExportIcon, info.Image); + Assert.IsNotNull(info.GetExportPath); + } + } + + [Test] + public void CreateFileExporter_Always_ReturnFileExporter() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var context = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext(new ObservableList(), + new DuneErosionFailureMechanism(), + assessmentSection); + + using (var plugin = new DuneErosionPlugin()) + { + ExportInfo info = GetExportInfo(plugin); + + // Call + IFileExporter fileExporter = info.CreateFileExporter(context, "test"); + + // Assert + Assert.IsInstanceOf(fileExporter); + } + + mocks.VerifyAll(); + } + + [Test] + public void IsEnabled_CalculationsWithoutOutput_ReturnFalse() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new DuneErosionFailureMechanism(); + failureMechanism.SetDuneLocations(new[] + { + new TestDuneLocation() + }); + var context = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext(new ObservableList(), + failureMechanism, + assessmentSection); + + using (var plugin = new DuneErosionPlugin()) + { + ExportInfo info = GetExportInfo(plugin); + + // Call + bool isEnabled = info.IsEnabled(context); + + // Assert + Assert.IsFalse(isEnabled); + } + + mocks.VerifyAll(); + } + + [Test] + [TestCaseSource(nameof(GetCalculationListFuncs))] + public void IsEnabled_CalculationsWithOutput_ReturnTrue(Func> getCalculationsFunc) + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new DuneErosionFailureMechanism(); + failureMechanism.SetDuneLocations(new[] + { + new TestDuneLocation() + }); + var context = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext(new ObservableList(), + failureMechanism, + assessmentSection); + getCalculationsFunc(context.FailureMechanism).Single().Output = new TestDuneLocationCalculationOutput(); + + using (var plugin = new DuneErosionPlugin()) + { + ExportInfo info = GetExportInfo(plugin); + + // Call + bool isEnabled = info.IsEnabled(context); + + // Assert + Assert.IsTrue(isEnabled); + } + + mocks.VerifyAll(); + } + + private static ExportInfo GetExportInfo(DuneErosionPlugin plugin) + { + return plugin.GetExportInfos().First(ei => ei.DataType == typeof(DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext)); + } + + private static IEnumerable GetCalculationListFuncs() + { + yield return new TestCaseData(new Func>( + failureMechanism => failureMechanism.CalculationsForMechanismSpecificFactorizedSignalingNorm)) + .SetName("Failure mechanism specific factorized signaling norm"); + + yield return new TestCaseData(new Func>( + failureMechanism => failureMechanism.CalculationsForMechanismSpecificSignalingNorm)) + .SetName("Failure mechanism specific signaling norm"); + + yield return new TestCaseData(new Func>( + failureMechanism => failureMechanism.CalculationsForMechanismSpecificLowerLimitNorm)) + .SetName("Failure mechanism specific lower limit norm"); + + yield return new TestCaseData(new Func>( + failureMechanism => failureMechanism.CalculationsForLowerLimitNorm)) + .SetName("Lower limit norm"); + + yield return new TestCaseData(new Func>( + failureMechanism => failureMechanism.CalculationsForFactorizedLowerLimitNorm)) + .SetName("Factorized lower limit norm"); + } + } +} \ No newline at end of file Fisheye: Tag c46ab97375853f37848d639772671873cfc08df5 refers to a dead (removed) revision in file `Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/ExportInfos/DuneLocationCalculationsGroupContextExportInfoTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/TreeNodeInfos/DuneErosionHydraulicLoadsContextTreeNodeInfoTest.cs =================================================================== diff -u -r3c8b0bc8bb3bad70dc25f55e5261f606ecc3c280 -rc46ab97375853f37848d639772671873cfc08df5 --- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/TreeNodeInfos/DuneErosionHydraulicLoadsContextTreeNodeInfoTest.cs (.../DuneErosionHydraulicLoadsContextTreeNodeInfoTest.cs) (revision 3c8b0bc8bb3bad70dc25f55e5261f606ecc3c280) +++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Plugin.Test/TreeNodeInfos/DuneErosionHydraulicLoadsContextTreeNodeInfoTest.cs (.../DuneErosionHydraulicLoadsContextTreeNodeInfoTest.cs) (revision c46ab97375853f37848d639772671873cfc08df5) @@ -126,10 +126,10 @@ var inputComment = (Comment) inputsFolder.Contents.ElementAt(0); Assert.AreSame(failureMechanism.InputComments, inputComment); - var duneLocationCalculationsGroupContext = (DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext) children[1]; - Assert.AreSame(failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities, duneLocationCalculationsGroupContext.WrappedData); - Assert.AreSame(failureMechanism, duneLocationCalculationsGroupContext.FailureMechanism); - Assert.AreSame(assessmentSection, duneLocationCalculationsGroupContext.AssessmentSection); + var targetProbabilitiesGroupContext = (DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext) children[1]; + Assert.AreSame(failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities, targetProbabilitiesGroupContext.WrappedData); + Assert.AreSame(failureMechanism, targetProbabilitiesGroupContext.FailureMechanism); + Assert.AreSame(assessmentSection, targetProbabilitiesGroupContext.AssessmentSection); } [Test]