Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -r58294671cbbde72fff978212cf62d3ce528169bd -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 58294671cbbde72fff978212cf62d3ce528169bd) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -729,6 +729,24 @@ } /// + /// Looks up a localized string similar to Ringtoets berekeningenconfiguratie. + /// + public static string DataTypeDisplayName_xml_file_filter_Description { + get { + return ResourceManager.GetString("DataTypeDisplayName_xml_file_filter_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to xml. + /// + public static string DataTypeDisplayName_xml_file_filter_Extension { + get { + return ResourceManager.GetString("DataTypeDisplayName_xml_file_filter_Extension", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Dijkhoogte [m+NAP]. /// public static string DikeHeight_DisplayName { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -r58294671cbbde72fff978212cf62d3ce528169bd -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision 58294671cbbde72fff978212cf62d3ce528169bd) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -926,4 +926,10 @@ Is relevant + + xml + + + Ringtoets berekeningenconfiguratie + \ No newline at end of file Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs =================================================================== diff -u -r37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79 -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -272,6 +272,7 @@ yield return new ExportInfo { + Name = "Golfcondities (*.csv).", CreateFileExporter = (context, filePath) => { var calculations = context.WrappedData.GetCalculations().Cast(); @@ -282,6 +283,15 @@ RingtoetsCommonFormsResources.DataTypeDisplayName_csv_file_filter_Description) }; + yield return new ExportInfo + { + Name = "Configuratie van de berekeningen (*.xml).", + CreateFileExporter = (context, filePath) => new GrassCoverErosionOutwardsConfigurationExporter(context.WrappedData, filePath), + IsEnabled = context => context.WrappedData.Children.Any(), + FileFilterGenerator = new FileFilterGenerator(RingtoetsCommonFormsResources.DataTypeDisplayName_xml_file_filter_Extension, + RingtoetsCommonFormsResources.DataTypeDisplayName_xml_file_filter_Description) + }; + yield return new ExportInfo { CreateFileExporter = (context, filePath) => new GrassCoverErosionOutwardsWaveConditionsExporter(new[] Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/ExportInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextExportInfoTest.cs =================================================================== diff -u -r3c283d1bc64a0dcc92291152963be2a9e6b8108f -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/ExportInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextExportInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextExportInfoTest.cs) (revision 3c283d1bc64a0dcc92291152963be2a9e6b8108f) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/ExportInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextExportInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextExportInfoTest.cs) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -29,6 +29,7 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.GrassCoverErosionOutwards.Forms.PresentationObjects; +using Ringtoets.GrassCoverErosionOutwards.IO; using Ringtoets.GrassCoverErosionOutwards.Plugin; using Ringtoets.Revetment.IO; using Ringtoets.Revetment.TestUtil; @@ -38,28 +39,35 @@ [TestFixture] public class GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextExportInfoTest { - [Test] - public void Initialized_Always_ExpectedPropertiesSet() + private ExportInfo waveConditionsExportInfo; + private ExportInfo configurationExportInfo; + + [SetUp] + public void Setup() { - // Setup using (var plugin = new GrassCoverErosionOutwardsPlugin()) { - // Call - ExportInfo info = GetExportInfo(plugin); - - // Assert - Assert.IsNotNull(info.CreateFileExporter); - Assert.IsNotNull(info.IsEnabled); - Assert.IsNull(info.Name); - Assert.IsNull(info.Category); - Assert.IsNull(info.Image); - Assert.IsNotNull(info.FileFilterGenerator); + ExportInfo[] exportInfos = plugin.GetExportInfos().Where(ei => ei.DataType == typeof(GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext)).ToArray(); + waveConditionsExportInfo = exportInfos.Single(ei => ei.Name.Equals("Golfcondities (*.csv).")); + configurationExportInfo = exportInfos.Single(ei => ei.Name.Equals("Configuratie van de berekeningen (*.xml).")); } } [Test] - public void CreateFileExporter_Always_ReturnFileExporter() + public void WaveConditionsExportInfo_Initialized_ExpectedPropertiesSet() { + // Assert + Assert.IsNotNull(waveConditionsExportInfo.CreateFileExporter); + Assert.IsNotNull(waveConditionsExportInfo.IsEnabled); + Assert.AreEqual("Golfcondities (*.csv).", waveConditionsExportInfo.Name); + Assert.IsNull(waveConditionsExportInfo.Category); + Assert.IsNull(waveConditionsExportInfo.Image); + Assert.IsNotNull(waveConditionsExportInfo.FileFilterGenerator); + } + + [Test] + public void WaveConditionsExportInfo_CreateFileExporter_ReturnFileExporter() + { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); @@ -69,37 +77,28 @@ var calculationGroup = new CalculationGroup(); var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(calculationGroup, failureMechanism, assessmentSection); - using (var plugin = new GrassCoverErosionOutwardsPlugin()) - { - ExportInfo exportInfo = GetExportInfo(plugin); - // Call - IFileExporter fileExporter = exportInfo.CreateFileExporter(context, "test"); + // Call + IFileExporter fileExporter = waveConditionsExportInfo.CreateFileExporter(context, "test"); - // Assert - Assert.IsInstanceOf(fileExporter); - } + // Assert + Assert.IsInstanceOf(fileExporter); + mocks.VerifyAll(); } [Test] - public void FileFilterGenerator_Always_ReturnsFileFilter() + public void WaveConditionsExportInfo_FileFilterGenerator_ReturnsFileFilter() { - // Setup - using (var plugin = new GrassCoverErosionOutwardsPlugin()) - { - ExportInfo exportInfo = GetExportInfo(plugin); + // Call + FileFilterGenerator fileFilterGenerator = waveConditionsExportInfo.FileFilterGenerator; - // Call - FileFilterGenerator fileFilterGenerator = exportInfo.FileFilterGenerator; - - // Assert - Assert.AreEqual("Kommagescheiden bestand (*.csv)|*.csv", fileFilterGenerator.Filter); - } + // Assert + Assert.AreEqual("Kommagescheiden bestand (*.csv)|*.csv", fileFilterGenerator.Filter); } [Test] - public void IsEnabled_NoGrassCoverErosionOutwardsWaveConditionsCalculation_ReturnsFalse() + public void WaveConditionsExportInfo_NoGrassCoverErosionOutwardsWaveConditionsCalculation_IsEnabledFalse() { // Setup var mocks = new MockRepository(); @@ -110,23 +109,19 @@ var calculationGroup = new CalculationGroup(); var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(calculationGroup, failureMechanism, assessmentSection); - using (var plugin = new GrassCoverErosionOutwardsPlugin()) - { - ExportInfo exportInfo = GetExportInfo(plugin); - // Call - bool isEnabled = exportInfo.IsEnabled(context); + // Call + bool isEnabled = waveConditionsExportInfo.IsEnabled(context); - // Assert - Assert.IsFalse(isEnabled); - } + // Assert + Assert.IsFalse(isEnabled); mocks.VerifyAll(); } [Test] [TestCase(true)] [TestCase(false)] - public void IsEnabled_CalculationWithOrWithoutOutput_ReturnsTrueOrFalse(bool hasOutput) + public void WaveConditionsExportInfo_CalculationWithOrWithoutOutput_IsEnabledTrueOrFalse(bool hasOutput) { // Setup var mocks = new MockRepository(); @@ -150,23 +145,19 @@ calculationGroup.Children.Add(calculation); var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(calculationGroup, failureMechanism, assessmentSection); - using (var plugin = new GrassCoverErosionOutwardsPlugin()) - { - ExportInfo exportInfo = GetExportInfo(plugin); - // Call - bool isEnabled = exportInfo.IsEnabled(context); + // Call + bool isEnabled = waveConditionsExportInfo.IsEnabled(context); - // Assert - Assert.AreEqual(hasOutput, isEnabled); - } + // Assert + Assert.AreEqual(hasOutput, isEnabled); mocks.VerifyAll(); } [Test] [TestCase(true)] [TestCase(false)] - public void IsEnabled_CalculationInSubFolder_ReturnsTrueIfHasOutput(bool hasOutput) + public void WaveConditionsExportInfo_CalculationInSubFolder_IsEnabledTrueIfHasOutput(bool hasOutput) { // Setup var mocks = new MockRepository(); @@ -198,22 +189,106 @@ }); var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(calculationGroup, failureMechanism, assessmentSection); - using (var plugin = new GrassCoverErosionOutwardsPlugin()) - { - ExportInfo exportInfo = GetExportInfo(plugin); - // Call - bool isEnabled = exportInfo.IsEnabled(context); + // Call + bool isEnabled = waveConditionsExportInfo.IsEnabled(context); - // Assert - Assert.AreEqual(hasOutput, isEnabled); - } + // Assert + Assert.AreEqual(hasOutput, isEnabled); mocks.VerifyAll(); } - private static ExportInfo GetExportInfo(GrassCoverErosionOutwardsPlugin plugin) + [Test] + public void ConfigurationExportInfo_Initialized_ExpectedPropertiesSet() { - return plugin.GetExportInfos().First(ei => ei.DataType == typeof(GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext)); + // Assert + Assert.IsNotNull(configurationExportInfo.CreateFileExporter); + Assert.IsNotNull(configurationExportInfo.IsEnabled); + Assert.AreEqual("Configuratie van de berekeningen (*.xml).", configurationExportInfo.Name); + Assert.IsNull(configurationExportInfo.Category); + Assert.IsNull(configurationExportInfo.Image); + Assert.IsNotNull(configurationExportInfo.FileFilterGenerator); } + + [Test] + public void ConfigurationExportInfo_CreateFileExporter_ReturnFileExporter() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(new CalculationGroup(), + new GrassCoverErosionOutwardsFailureMechanism(), + assessmentSection); + + // Call + IFileExporter fileExporter = configurationExportInfo.CreateFileExporter(context, "test"); + + // Assert + Assert.IsInstanceOf(fileExporter); + } + + [Test] + public void ConfigurationExportInfo_FileFilterGenerator_ReturnFileFilter() + { + // Call + FileFilterGenerator fileFilterGenerator = configurationExportInfo.FileFilterGenerator; + + // Assert + Assert.AreEqual("Ringtoets berekeningenconfiguratie (*.xml)|*.xml", fileFilterGenerator.Filter); + } + + [Test] + public void ConfigurationExportInfo_CalculationGroupNoChildren_IsEnabledFalse() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(new CalculationGroup(), + new GrassCoverErosionOutwardsFailureMechanism(), + assessmentSection); + + // Call + bool isEnabled = configurationExportInfo.IsEnabled(context); + + // Assert + Assert.IsFalse(isEnabled); + } + + [Test] + [TestCase(true, false)] + [TestCase(false, true)] + public void ConfigurationExportInfo_CalculationGroupWithChildren_IsEnabledTrue(bool hasNestedGroup, bool hasCalculation) + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var calculationGroup = new CalculationGroup(); + + if (hasNestedGroup) + { + calculationGroup.Children.Add(new CalculationGroup()); + } + + if (hasCalculation) + { + calculationGroup.Children.Add(new GrassCoverErosionOutwardsWaveConditionsCalculation()); + } + + var context = new GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext(calculationGroup, + new GrassCoverErosionOutwardsFailureMechanism(), + assessmentSection); + + // Call + bool isEnabled = configurationExportInfo.IsEnabled(context); + + // Assert + Assert.IsTrue(isEnabled); + } } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/GrassCoverErosionOutwardsPluginTest.cs =================================================================== diff -u -r0cc64a130e25bd1cb8ffa996799b2556c7798269 -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/GrassCoverErosionOutwardsPluginTest.cs (.../GrassCoverErosionOutwardsPluginTest.cs) (revision 0cc64a130e25bd1cb8ffa996799b2556c7798269) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/GrassCoverErosionOutwardsPluginTest.cs (.../GrassCoverErosionOutwardsPluginTest.cs) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -169,9 +169,9 @@ ExportInfo[] exportInfos = plugin.GetExportInfos().ToArray(); // Assert - Assert.AreEqual(4, exportInfos.Length); + Assert.AreEqual(5, exportInfos.Length); Assert.AreEqual(2, exportInfos.Count(ei => ei.DataType == typeof(HydraulicBoundariesGroupContext))); - Assert.IsTrue(exportInfos.Any(ei => ei.DataType == typeof(GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext))); + Assert.AreEqual(2, exportInfos.Count(ei => ei.DataType == typeof(GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext))); Assert.IsTrue(exportInfos.Any(ei => ei.DataType == typeof(GrassCoverErosionOutwardsWaveConditionsCalculationContext))); } } Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj =================================================================== diff -u -r86bb01b9f86d6a742c8d057187cc246a8d9e2c54 -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj) (revision 86bb01b9f86d6a742c8d057187cc246a8d9e2c54) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -167,6 +167,10 @@ {41B829C1-630F-40B0-8BEE-B1C4C94EC8C4} Ringtoets.GrassCoverErosionOutwards.Forms + + {6EAEEC05-E564-45FC-AE7E-912F3612CC9D} + Ringtoets.GrassCoverErosionOutwards.IO + {9B3ED064-E29F-4D38-85E0-3A82B77BA702} Ringtoets.GrassCoverErosionOutwards.Plugin Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -r2ab087c5f7b254eb7ea6d167b122afaea10b0ff6 -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 2ab087c5f7b254eb7ea6d167b122afaea10b0ff6) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -123,7 +123,7 @@ yield return new ImportInfo { - Name = Resources.PipingPlugin_PipingConfigurationFileFilter_description, + Name = RingtoetsCommonFormsResources.DataTypeDisplayName_xml_file_filter_Description, Category = RingtoetsCommonFormsResources.Ringtoets_Category, Image = RingtoetsCommonFormsResources.GeneralFolderIcon, FileFilterGenerator = PipingConfigurationFileFilter, @@ -350,8 +350,8 @@ { get { - return new FileFilterGenerator(Resources.PipingPlugin_PipingConfigurationFileFilter_xml_extension, - Resources.PipingPlugin_PipingConfigurationFileFilter_description); + return new FileFilterGenerator(RingtoetsCommonFormsResources.DataTypeDisplayName_xml_file_filter_Extension, + RingtoetsCommonFormsResources.DataTypeDisplayName_xml_file_filter_Description); } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.Designer.cs =================================================================== diff -u -rd3ebf1b56b406bc99fdf54a9920fdfa9f7632ca7 -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision d3ebf1b56b406bc99fdf54a9920fdfa9f7632ca7) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -149,24 +149,6 @@ } /// - /// Looks up a localized string similar to Ringtoets berekeningenconfiguratie. - /// - public static string PipingPlugin_PipingConfigurationFileFilter_description { - get { - return ResourceManager.GetString("PipingPlugin_PipingConfigurationFileFilter_description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to xml. - /// - public static string PipingPlugin_PipingConfigurationFileFilter_xml_extension { - get { - return ResourceManager.GetString("PipingPlugin_PipingConfigurationFileFilter_xml_extension", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Bijwerken van stochastische ondergrondmodellen.. /// public static string PipingPlugin_RunUpdateStochasticSoilModel_Update_StochasticSoilModels { Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.resx =================================================================== diff -u -rd3ebf1b56b406bc99fdf54a9920fdfa9f7632ca7 -rc31353107227995d74e8727a85b02a89a39c139d --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.resx (.../Resources.resx) (revision d3ebf1b56b406bc99fdf54a9920fdfa9f7632ca7) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.resx (.../Resources.resx) (revision c31353107227995d74e8727a85b02a89a39c139d) @@ -227,12 +227,6 @@ Het bijwerken van de profielschematisaties is mislukt. - - xml - - - Ringtoets berekeningenconfiguratie - Als profielschematisaties wijzigen door het bijwerken, dan worden de resultaten van berekeningen die deze profielschematisaties gebruiken verwijderd.