Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PresentationObjects/ClosingStructuresCalculationGroupContext.cs =================================================================== diff -u -rca23b1b155ca87c0aa4665fd919727570f31c781 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PresentationObjects/ClosingStructuresCalculationGroupContext.cs (.../ClosingStructuresCalculationGroupContext.cs) (revision ca23b1b155ca87c0aa4665fd919727570f31c781) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PresentationObjects/ClosingStructuresCalculationGroupContext.cs (.../ClosingStructuresCalculationGroupContext.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -20,9 +20,11 @@ // All rights reserved. using System; +using System.Collections.Generic; using Ringtoets.ClosingStructures.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Forms.PresentationObjects; namespace Ringtoets.ClosingStructures.Forms.PresentationObjects @@ -45,5 +47,27 @@ ClosingStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection) : base(calculationGroup, failureMechanism, assessmentSection) {} + + /// + /// Gets the available foreshore profiles. + /// + public IEnumerable AvailableForeshoreProfiles + { + get + { + return FailureMechanism.ForeshoreProfiles; + } + } + + /// + /// Gets the available closing structures. + /// + public IEnumerable AvailableStructures + { + get + { + return FailureMechanism.ClosingStructures; + } + } } } \ No newline at end of file Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/ClosingStructuresImporter.cs =================================================================== diff -u -r8e8f8c83c45656f65adaa8e47600379dc5ae8f61 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/ClosingStructuresImporter.cs (.../ClosingStructuresImporter.cs) (revision 8e8f8c83c45656f65adaa8e47600379dc5ae8f61) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/ClosingStructuresImporter.cs (.../ClosingStructuresImporter.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -28,7 +28,6 @@ using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.IO.FileImporters; using Ringtoets.Common.IO.Structures; -using RingtoetsCommonIOResources = Ringtoets.Common.IO.Properties.Resources; namespace Ringtoets.ClosingStructures.IO { Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Configurations/ClosingStructuresCalculationConfigurationImporter.cs =================================================================== diff -u -r3307edf9e893dd67926dffaac019185b32bbbe86 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Configurations/ClosingStructuresCalculationConfigurationImporter.cs (.../ClosingStructuresCalculationConfigurationImporter.cs) (revision 3307edf9e893dd67926dffaac019185b32bbbe86) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Configurations/ClosingStructuresCalculationConfigurationImporter.cs (.../ClosingStructuresCalculationConfigurationImporter.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -22,8 +22,10 @@ using System; using System.Collections.Generic; using Core.Common.Base.Data; +using log4net; using Ringtoets.ClosingStructures.Data; using Ringtoets.ClosingStructures.IO.Configurations.Helpers; +using Ringtoets.ClosingStructures.IO.Properties; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.Hydraulics; @@ -109,6 +111,7 @@ && TryReadIdenticalApertures(readCalculation, calculation) && readCalculation.WaveReduction.ValidateWaveReduction(calculation.InputParameters.ForeshoreProfile, calculation.Name, Log)) { + ReadFactorStormDurationOpenStructure(readCalculation, calculation); ReadWaveReductionParameters(readCalculation.WaveReduction, calculation.InputParameters); return calculation; } @@ -117,10 +120,14 @@ private bool TryReadStochasts(ClosingStructuresCalculationConfiguration readCalculation, StructuresCalculation calculation) { - if (!readCalculation.ValidateStochasts(Log)) + if (!readCalculation.ValidateStructureBaseStochasts(Log)) { return false; } + if (!ValidateStochasts(readCalculation)) + { + return false; + } return TryReadStandardDeviationStochast( calculation.Name, @@ -198,6 +205,17 @@ (i, d) => i.StormDuration = d); } + private bool ValidateStochasts(ClosingStructuresCalculationConfiguration configuration) + { + if (configuration.DrainCoefficient?.StandardDeviation != null) + { + Log.LogCalculationConversionError(Resources.CalculationConfigurationImporter_ValidateStochasts_Cannot_define_StandardDeviation_for_DrainCoefficient, + configuration.Name); + return false; + } + return true; + } + /// /// Reads the orientation. /// @@ -273,6 +291,19 @@ } /// + /// Reads the factor storm duration. + /// + /// The calculation read from the imported file. + /// The calculation to configure. + private void ReadFactorStormDurationOpenStructure(ClosingStructuresCalculationConfiguration readCalculation, StructuresCalculation calculation) + { + if (readCalculation.FactorStormDurationOpenStructure.HasValue) + { + calculation.InputParameters.FactorStormDurationOpenStructure = (RoundedDouble) readCalculation.FactorStormDurationOpenStructure.Value; + } + } + + /// /// Reads the failure probability open structure. /// /// The calculation read from the imported file. Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Properties/Resources.Designer.cs =================================================================== diff -u -r8963d5e5c4a22feba25c4e936e6b67de7104cccd -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 8963d5e5c4a22feba25c4e936e6b67de7104cccd) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -82,6 +82,16 @@ } /// + /// Looks up a localized string similar to Er kan geen standaardafwijking voor stochast 'afvoercoefficient' opgegeven worden.. + /// + internal static string CalculationConfigurationImporter_ValidateStochasts_Cannot_define_StandardDeviation_for_DrainCoefficient { + get { + return ResourceManager.GetString("CalculationConfigurationImporter_ValidateStochasts_Cannot_define_StandardDeviatio" + + "n_for_DrainCoefficient", resourceCulture); + } + } + + /// /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8"?> ///<!-- ///Copyright (C) Stichting Deltares 2016. All rights reserved. Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Properties/Resources.resx =================================================================== diff -u -r8963d5e5c4a22feba25c4e936e6b67de7104cccd -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Properties/Resources.resx (.../Resources.resx) (revision 8963d5e5c4a22feba25c4e936e6b67de7104cccd) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/Properties/Resources.resx (.../Resources.resx) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Er kan geen standaardafwijking voor stochast 'afvoercoefficient' opgegeven worden. + ..\Resources\KunstwerkenBetrouwbaarheidSluitenSchema.xsd;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -r16c94d05c67237dec9fcab0f3f03c6b48d3c335b -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 16c94d05c67237dec9fcab0f3f03c6b48d3c335b) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -46,6 +46,7 @@ using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.ExportInfos; using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.ImportInfos; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.TreeNodeInfos; using Ringtoets.Common.Service; @@ -200,6 +201,14 @@ RingtoetsCommonIOResources.Shape_file_filter_Description), IsEnabled = context => context.AssessmentSection.ReferenceLine != null }; + + yield return RingtoetsImportInfoFactory.CreateCalculationConfigurationImportInfo( + (context, filePath) => new ClosingStructuresCalculationConfigurationImporter( + filePath, + context.WrappedData, + context.AvailableHydraulicBoundaryLocations, + context.AvailableForeshoreProfiles, + context.AvailableStructures)); } public override IEnumerable GetExportInfos() @@ -462,7 +471,8 @@ var builder = new RingtoetsContextMenuBuilder(Gui.Get(context, treeViewControl)); var isNestedGroup = parentData is ClosingStructuresCalculationGroupContext; - builder.AddExportItem() + builder.AddImportItem() + .AddExportItem() .AddSeparator(); if (!isNestedGroup) Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PresentationObjects/ClosingStructuresCalculationGroupContextTest.cs =================================================================== diff -u -rfb9bf56793b90226745888c194ba6ae760f83f4c -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PresentationObjects/ClosingStructuresCalculationGroupContextTest.cs (.../ClosingStructuresCalculationGroupContextTest.cs) (revision fb9bf56793b90226745888c194ba6ae760f83f4c) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PresentationObjects/ClosingStructuresCalculationGroupContextTest.cs (.../ClosingStructuresCalculationGroupContextTest.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -52,6 +52,8 @@ Assert.AreSame(calculationGroup, groupContext.WrappedData); Assert.AreSame(failureMechanism, groupContext.FailureMechanism); Assert.AreSame(assessmentSection, groupContext.AssessmentSection); + Assert.AreSame(failureMechanism.ForeshoreProfiles, groupContext.AvailableForeshoreProfiles); + Assert.AreSame(failureMechanism.ClosingStructures, groupContext.AvailableStructures); mockRepository.VerifyAll(); } } Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/Configurations/ClosingStructuresCalculationConfigurationImporterTest.cs =================================================================== diff -u -r3307edf9e893dd67926dffaac019185b32bbbe86 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/Configurations/ClosingStructuresCalculationConfigurationImporterTest.cs (.../ClosingStructuresCalculationConfigurationImporterTest.cs) (revision 3307edf9e893dd67926dffaac019185b32bbbe86) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/Configurations/ClosingStructuresCalculationConfigurationImporterTest.cs (.../ClosingStructuresCalculationConfigurationImporterTest.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -109,6 +109,8 @@ "Er kan geen standaardafwijking voor stochast 'modelfactoroverloopdebiet' opgegeven worden.")] [TestCase("validConfigurationStormDurationVariationCoefficient.xml", "Er kan geen variatiecoëfficiënt voor stochast 'stormduur' opgegeven worden.")] + [TestCase("validConfigurationDrainCoefficientStandardDeviation.xml", + "Er kan geen standaardafwijking voor stochast 'afvoercoefficient' opgegeven worden.")] [TestCase("validConfigurationFailureProbabilityOpenStructureWithoutStructure.xml", "Er is geen kunstwerk opgegeven om kans mislukken sluiting aan toe te voegen.")] [TestCase("validConfigurationFailureProbabilityReparationWithoutStructure.xml", @@ -350,7 +352,6 @@ DrainCoefficient = { Mean = (RoundedDouble) 1.1, - StandardDeviation = (RoundedDouble) 0.1 }, InsideWaterLevel = { @@ -505,10 +506,6 @@ { StandardDeviation = (RoundedDouble) 1 }, - DrainCoefficient = - { - StandardDeviation = (RoundedDouble) 0.1 - }, InsideWaterLevel = { StandardDeviation = (RoundedDouble) 0.1 @@ -570,20 +567,30 @@ Assert.AreEqual(expectedCalculation.Name, actualCalculation.Name); Assert.AreSame(expectedCalculation.InputParameters.HydraulicBoundaryLocation, actualCalculation.InputParameters.HydraulicBoundaryLocation); Assert.AreEqual(expectedCalculation.InputParameters.StructureNormalOrientation, actualCalculation.InputParameters.StructureNormalOrientation); + Assert.AreEqual(expectedCalculation.InputParameters.FactorStormDurationOpenStructure, actualCalculation.InputParameters.FactorStormDurationOpenStructure); + Assert.AreEqual(expectedCalculation.InputParameters.FailureProbabilityOpenStructure, actualCalculation.InputParameters.FailureProbabilityOpenStructure); + Assert.AreEqual(expectedCalculation.InputParameters.FailureProbabilityReparation, actualCalculation.InputParameters.FailureProbabilityReparation); + Assert.AreEqual(expectedCalculation.InputParameters.IdenticalApertures, actualCalculation.InputParameters.IdenticalApertures); + Assert.AreEqual(expectedCalculation.InputParameters.InflowModelType, actualCalculation.InputParameters.InflowModelType); + Assert.AreEqual(expectedCalculation.InputParameters.ProbabilityOrFrequencyOpenStructureBeforeFlooding, actualCalculation.InputParameters.ProbabilityOrFrequencyOpenStructureBeforeFlooding); Assert.AreSame(expectedCalculation.InputParameters.ForeshoreProfile, actualCalculation.InputParameters.ForeshoreProfile); Assert.AreSame(expectedCalculation.InputParameters.Structure, actualCalculation.InputParameters.Structure); Assert.AreEqual(expectedCalculation.InputParameters.UseForeshore, actualCalculation.InputParameters.UseForeshore); Assert.AreEqual(expectedCalculation.InputParameters.UseBreakWater, actualCalculation.InputParameters.UseBreakWater); Assert.AreEqual(expectedCalculation.InputParameters.BreakWater.Height, actualCalculation.InputParameters.BreakWater.Height); Assert.AreEqual(expectedCalculation.InputParameters.BreakWater.Type, actualCalculation.InputParameters.BreakWater.Type); - DistributionAssert.AreEqual(expectedCalculation.InputParameters.LevelCrestStructureNotClosing, actualCalculation.InputParameters.LevelCrestStructureNotClosing); - DistributionAssert.AreEqual(expectedCalculation.InputParameters.AllowedLevelIncreaseStorage, actualCalculation.InputParameters.AllowedLevelIncreaseStorage); - DistributionAssert.AreEqual(expectedCalculation.InputParameters.FlowWidthAtBottomProtection, actualCalculation.InputParameters.FlowWidthAtBottomProtection); - DistributionAssert.AreEqual(expectedCalculation.InputParameters.ModelFactorSuperCriticalFlow, actualCalculation.InputParameters.ModelFactorSuperCriticalFlow); - DistributionAssert.AreEqual(expectedCalculation.InputParameters.CriticalOvertoppingDischarge, actualCalculation.InputParameters.CriticalOvertoppingDischarge); - DistributionAssert.AreEqual(expectedCalculation.InputParameters.StorageStructureArea, actualCalculation.InputParameters.StorageStructureArea); DistributionAssert.AreEqual(expectedCalculation.InputParameters.StormDuration, actualCalculation.InputParameters.StormDuration); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.ModelFactorSuperCriticalFlow, actualCalculation.InputParameters.ModelFactorSuperCriticalFlow); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.FlowWidthAtBottomProtection, actualCalculation.InputParameters.FlowWidthAtBottomProtection); DistributionAssert.AreEqual(expectedCalculation.InputParameters.WidthFlowApertures, actualCalculation.InputParameters.WidthFlowApertures); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.StorageStructureArea, actualCalculation.InputParameters.StorageStructureArea); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.AllowedLevelIncreaseStorage, actualCalculation.InputParameters.AllowedLevelIncreaseStorage); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.CriticalOvertoppingDischarge, actualCalculation.InputParameters.CriticalOvertoppingDischarge); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.LevelCrestStructureNotClosing, actualCalculation.InputParameters.LevelCrestStructureNotClosing); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.AreaFlowApertures, actualCalculation.InputParameters.AreaFlowApertures); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.DrainCoefficient, actualCalculation.InputParameters.DrainCoefficient); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.InsideWaterLevel, actualCalculation.InputParameters.InsideWaterLevel); + DistributionAssert.AreEqual(expectedCalculation.InputParameters.ThresholdHeightOpenWeir, actualCalculation.InputParameters.ThresholdHeightOpenWeir); } } } \ No newline at end of file Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validConfigurationDrainCoefficientStandardDeviation.xml =================================================================== diff -u --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validConfigurationDrainCoefficientStandardDeviation.xml (revision 0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validConfigurationDrainCoefficientStandardDeviation.xml (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -0,0 +1,11 @@ + + + + kunstwerk1 + + + 0.1 + + + + Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validConfigurationStochastStandardDeviationVariationCoefficientOnly.xml =================================================================== diff -u -r3307edf9e893dd67926dffaac019185b32bbbe86 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validConfigurationStochastStandardDeviationVariationCoefficientOnly.xml (.../validConfigurationStochastStandardDeviationVariationCoefficientOnly.xml) (revision 3307edf9e893dd67926dffaac019185b32bbbe86) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validConfigurationStochastStandardDeviationVariationCoefficientOnly.xml (.../validConfigurationStochastStandardDeviationVariationCoefficientOnly.xml) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -23,7 +23,6 @@ 0.1 - 0.1 0.1 Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validFullConfiguration.xml =================================================================== diff -u -r3307edf9e893dd67926dffaac019185b32bbbe86 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validFullConfiguration.xml (.../validFullConfiguration.xml) (revision 3307edf9e893dd67926dffaac019185b32bbbe86) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.IO.Test/test-data/ClosingStructuresCalculationConfigurationImporter/validFullConfiguration.xml (.../validFullConfiguration.xml) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -47,7 +47,6 @@ 1.1 - 0.1 0.5 Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs =================================================================== diff -u -rf690272ef922b7cefaac34021bceca21947004c0 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision f690272ef922b7cefaac34021bceca21947004c0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -140,8 +140,9 @@ ImportInfo[] importInfos = plugin.GetImportInfos().ToArray(); // Assert - Assert.AreEqual(1, importInfos.Length); + Assert.AreEqual(2, importInfos.Length); Assert.IsTrue(importInfos.Any(i => i.DataType == typeof(ClosingStructuresContext))); + Assert.IsTrue(importInfos.Any(i => i.DataType == typeof(ClosingStructuresCalculationGroupContext))); } } Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ImportInfos/ClosingStructuresCalculationGroupContextImportInfoTest.cs =================================================================== diff -u --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ImportInfos/ClosingStructuresCalculationGroupContextImportInfoTest.cs (revision 0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ImportInfos/ClosingStructuresCalculationGroupContextImportInfoTest.cs (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -0,0 +1,123 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets 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 Core.Common.Base.IO; +using Core.Common.Gui; +using Core.Common.Gui.Plugin; +using Core.Common.TestUtil; +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.ClosingStructures.Data; +using Ringtoets.ClosingStructures.Forms.PresentationObjects; +using Ringtoets.ClosingStructures.IO; +using Ringtoets.ClosingStructures.IO.Configurations; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Ringtoets.ClosingStructures.Plugin.Test.ImportInfos +{ + [TestFixture] + public class ClosingStructuresCalculationGroupContextImportInfoTest + { + [Test] + public void Initialized_Always_ExpectedPropertiesSet() + { + // Setup + using (var plugin = new ClosingStructuresPlugin()) + { + // Call + ImportInfo info = GetImportInfo(plugin); + + // Assert + Assert.IsNotNull(info.CreateFileImporter); + Assert.IsNotNull(info.IsEnabled); + Assert.AreEqual("Ringtoets berekeningenconfiguratie", info.Name); + Assert.AreEqual("Algemeen", info.Category); + TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.GeneralFolderIcon, info.Image); + Assert.IsNotNull(info.FileFilterGenerator); + } + } + + [Test] + public void CreateFileImporter_Always_ReturnFileImporter() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var context = new ClosingStructuresCalculationGroupContext(new CalculationGroup(), + new ClosingStructuresFailureMechanism(), + assessmentSection); + + using (var plugin = new ClosingStructuresPlugin()) + { + ImportInfo info = GetImportInfo(plugin); + + // Call + IFileImporter fileImporter = info.CreateFileImporter(context, "test"); + + // Assert + Assert.IsInstanceOf(fileImporter); + } + mocks.VerifyAll(); + } + + [Test] + public void FileFilterGenerator_Always_ReturnFileFilter() + { + // Setup + using (var plugin = new ClosingStructuresPlugin()) + { + ImportInfo info = GetImportInfo(plugin); + + // Call + FileFilterGenerator fileFilterGenerator = info.FileFilterGenerator; + + // Assert + Assert.AreEqual("Ringtoets berekeningenconfiguratie (*.xml)|*.xml", fileFilterGenerator.Filter); + } + } + + [Test] + public void IsEnabled_Always_ReturnsTrue() + { + // Setup + using (var plugin = new ClosingStructuresPlugin()) + { + ImportInfo info = GetImportInfo(plugin); + + // Call + bool isEnabled = info.IsEnabled(null); + + // Assert + Assert.IsTrue(isEnabled); + } + } + + private static ImportInfo GetImportInfo(ClosingStructuresPlugin plugin) + { + return plugin.GetImportInfos().First(ei => ei.DataType == typeof(ClosingStructuresCalculationGroupContext)); + } + } +} \ No newline at end of file Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj =================================================================== diff -u -rf690272ef922b7cefaac34021bceca21947004c0 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj (.../Ringtoets.ClosingStructures.Plugin.Test.csproj) (revision f690272ef922b7cefaac34021bceca21947004c0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj (.../Ringtoets.ClosingStructures.Plugin.Test.csproj) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -67,6 +67,7 @@ + Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/TreeNodeInfos/ClosingStructuresCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -rf690272ef922b7cefaac34021bceca21947004c0 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/TreeNodeInfos/ClosingStructuresCalculationGroupContextTreeNodeInfoTest.cs (.../ClosingStructuresCalculationGroupContextTreeNodeInfoTest.cs) (revision f690272ef922b7cefaac34021bceca21947004c0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/TreeNodeInfos/ClosingStructuresCalculationGroupContextTreeNodeInfoTest.cs (.../ClosingStructuresCalculationGroupContextTreeNodeInfoTest.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -54,18 +54,18 @@ [TestFixture] public class ClosingStructuresCalculationGroupContextTreeNodeInfoTest : NUnitFormTest { - private const int contextMenuGenerateCalculationsIndexRootGroup = 2; - private const int contextMenuAddCalculationGroupIndexRootGroup = 4; - private const int contextMenuAddCalculationIndexRootGroup = 5; - private const int contextMenuValidateAllIndexRootGroup = 7; - private const int contextMenuCalculateAllIndexRootGroup = 8; - private const int contextMenuClearAllIndexRootGroup = 10; + private const int contextMenuGenerateCalculationsIndexRootGroup = 3; + private const int contextMenuAddCalculationGroupIndexRootGroup = 5; + private const int contextMenuAddCalculationIndexRootGroup = 6; + private const int contextMenuValidateAllIndexRootGroup = 8; + private const int contextMenuCalculateAllIndexRootGroup = 9; + private const int contextMenuClearAllIndexRootGroup = 11; - private const int contextMenuAddCalculationGroupIndexNestedGroup = 2; - private const int contextMenuAddCalculationIndexNestedGroup = 3; - private const int contextMenuValidateAllIndexNestedGroup = 6; - private const int contextMenuCalculateAllIndexNestedGroup = 7; - private const int contextMenuClearAllIndexNestedGroup = 9; + private const int contextMenuAddCalculationGroupIndexNestedGroup = 3; + private const int contextMenuAddCalculationIndexNestedGroup = 4; + private const int contextMenuValidateAllIndexNestedGroup = 7; + private const int contextMenuCalculateAllIndexNestedGroup = 8; + private const int contextMenuClearAllIndexNestedGroup = 10; private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "HydraulicBoundaryDatabaseImporter"); @@ -191,6 +191,7 @@ var menuBuilderMock = mocks.StrictMock(); using (mocks.Ordered()) { + menuBuilderMock.Expect(mb => mb.AddImportItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); @@ -249,7 +250,7 @@ using (ContextMenuStrip menu = info.ContextMenuStrip(groupContext, null, treeViewControl)) { // Assert - Assert.AreEqual(17, menu.Items.Count); + Assert.AreEqual(18, menu.Items.Count); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuGenerateCalculationsIndexRootGroup, "Genereer &berekeningen...", @@ -309,7 +310,7 @@ using (ContextMenuStrip menu = info.ContextMenuStrip(groupContext, null, treeViewControl)) { // Assert - Assert.AreEqual(17, menu.Items.Count); + Assert.AreEqual(18, menu.Items.Count); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuGenerateCalculationsIndexRootGroup, "Genereer &berekeningen...", @@ -337,6 +338,7 @@ var menuBuilderMock = mocks.StrictMock(); using (mocks.Ordered()) { + menuBuilderMock.Expect(mb => mb.AddImportItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); @@ -394,7 +396,7 @@ using (ContextMenuStrip menu = info.ContextMenuStrip(groupContext, parentGroupContext, treeViewControl)) { // Assert - Assert.AreEqual(16, menu.Items.Count); + Assert.AreEqual(17, menu.Items.Count); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexNestedGroup, "&Map toevoegen", Index: Ringtoets/Common/src/Ringtoets.Common.IO/Configurations/Helpers/ConfigurationValidationExtensions.cs =================================================================== diff -u -r335523a40d190e19b1061804de21c28f74140f52 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/Common/src/Ringtoets.Common.IO/Configurations/Helpers/ConfigurationValidationExtensions.cs (.../ConfigurationValidationExtensions.cs) (revision 335523a40d190e19b1061804de21c28f74140f52) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Configurations/Helpers/ConfigurationValidationExtensions.cs (.../ConfigurationValidationExtensions.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -80,7 +80,7 @@ /// Log used to write out errors. /// false when there is an invalid stochast parameter defined, true otherwise. /// Thrown when any parameter is null. - public static bool ValidateStochasts(this StructuresCalculationConfiguration configuration, ILog log) + public static bool ValidateStructureBaseStochasts(this StructuresCalculationConfiguration configuration, ILog log) { if (configuration == null) { Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Configurations/Helpers/ConfigurationValidationExtensionsTest.cs =================================================================== diff -u -r335523a40d190e19b1061804de21c28f74140f52 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Configurations/Helpers/ConfigurationValidationExtensionsTest.cs (.../ConfigurationValidationExtensionsTest.cs) (revision 335523a40d190e19b1061804de21c28f74140f52) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Configurations/Helpers/ConfigurationValidationExtensionsTest.cs (.../ConfigurationValidationExtensionsTest.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -203,7 +203,7 @@ const string calculationName = "calculation"; // Call - TestDelegate test = () => new TestStructuresCalculationConfiguration(calculationName).ValidateStochasts(null); + TestDelegate test = () => new TestStructuresCalculationConfiguration(calculationName).ValidateStructureBaseStochasts(null); // Assert var exception = Assert.Throws(test); @@ -219,7 +219,7 @@ mocks.ReplayAll(); // Call - TestDelegate test = () => ((StructuresCalculationConfiguration)null).ValidateStochasts(log); + TestDelegate test = () => ((StructuresCalculationConfiguration)null).ValidateStructureBaseStochasts(log); // Assert var exception = Assert.Throws(test); @@ -240,7 +240,7 @@ var configuration = new TestStructuresCalculationConfiguration(calculationName); // Call - configuration.ValidateStochasts(log); + configuration.ValidateStructureBaseStochasts(log); // Assert mocks.VerifyAll(); @@ -268,7 +268,7 @@ }; // Call - configuration.ValidateStochasts(log); + configuration.ValidateStructureBaseStochasts(log); // Assert mocks.VerifyAll(); @@ -293,7 +293,7 @@ }; // Call - configuration.ValidateStochasts(log); + configuration.ValidateStructureBaseStochasts(log); // Assert mocks.VerifyAll(); @@ -321,7 +321,7 @@ }; // Call - configuration.ValidateStochasts(log); + configuration.ValidateStructureBaseStochasts(log); // Assert mocks.VerifyAll(); @@ -346,7 +346,7 @@ }; // Call - configuration.ValidateStochasts(log); + configuration.ValidateStructureBaseStochasts(log); // Assert mocks.VerifyAll(); Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/PresentationObjects/HeightStructuresCalculationGroupContext.cs =================================================================== diff -u -r99681405f4c6e99e9db1d14b508d863158624650 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/PresentationObjects/HeightStructuresCalculationGroupContext.cs (.../HeightStructuresCalculationGroupContext.cs) (revision 99681405f4c6e99e9db1d14b508d863158624650) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/PresentationObjects/HeightStructuresCalculationGroupContext.cs (.../HeightStructuresCalculationGroupContext.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -48,7 +48,6 @@ IAssessmentSection assessmentSection) : base(calculationsGroup, failureMechanism, assessmentSection) {} - /// /// Gets the available foreshore profiles. /// Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.IO/Configurations/HeightStructuresCalculationConfigurationImporter.cs =================================================================== diff -u -r3307edf9e893dd67926dffaac019185b32bbbe86 -r5f489223b4d730eec42acd55533dd012d10dd1ca --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.IO/Configurations/HeightStructuresCalculationConfigurationImporter.cs (.../HeightStructuresCalculationConfigurationImporter.cs) (revision 3307edf9e893dd67926dffaac019185b32bbbe86) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.IO/Configurations/HeightStructuresCalculationConfigurationImporter.cs (.../HeightStructuresCalculationConfigurationImporter.cs) (revision 5f489223b4d730eec42acd55533dd012d10dd1ca) @@ -114,7 +114,7 @@ private bool TryReadStochasts(HeightStructuresCalculationConfiguration readCalculation, StructuresCalculation calculation) { - if (!readCalculation.ValidateStochasts(Log)) + if (!readCalculation.ValidateStructureBaseStochasts(Log)) { return false; }