Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs =================================================================== diff -u -r021e7b17655958447eefe32c56f207200801647c -r66c2f121366073bd6f2944ee0d9c5ec664a4cd09 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 021e7b17655958447eefe32c56f207200801647c) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 66c2f121366073bd6f2944ee0d9c5ec664a4cd09) @@ -719,8 +719,7 @@ private StrictContextMenuItem CreateGenerateWaveConditionsCalculationsItem(GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext nodeData) { - HydraulicBoundaryDatabase hydraulicBoundaryDatabase = nodeData.AssessmentSection.HydraulicBoundaryDatabase; - bool locationsAvailable = hydraulicBoundaryDatabase != null && hydraulicBoundaryDatabase.Locations.Any(); + bool locationsAvailable = nodeData.AssessmentSection.HydraulicBoundaryDatabase.Locations.Any(); string grassCoverErosionOutwardsWaveConditionsCalculationGroupContextToolTip = locationsAvailable ? RingtoetsCommonFormsResources.CalculationGroup_CreateGenerateHydraulicBoundaryCalculationsItem_ToolTip Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/HydraulicBoundaryDatabaseProperties.cs =================================================================== diff -u -re4b0e9a6cd505d7d0773e22613ba38880fb0846a -r66c2f121366073bd6f2944ee0d9c5ec664a4cd09 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/HydraulicBoundaryDatabaseProperties.cs (.../HydraulicBoundaryDatabaseProperties.cs) (revision e4b0e9a6cd505d7d0773e22613ba38880fb0846a) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/HydraulicBoundaryDatabaseProperties.cs (.../HydraulicBoundaryDatabaseProperties.cs) (revision 66c2f121366073bd6f2944ee0d9c5ec664a4cd09) @@ -62,7 +62,7 @@ { get { - return data.WrappedData.HydraulicBoundaryDatabase != null ? data.WrappedData.HydraulicBoundaryDatabase.FilePath : string.Empty; + return data.WrappedData.HydraulicBoundaryDatabase.IsCoupled() ? data.WrappedData.HydraulicBoundaryDatabase.FilePath : string.Empty; } } Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/FailureMechanismContributionNormChangeHandler.cs =================================================================== diff -u -ra8700b1afad48f78474132bf4745ba00a47df584 -r66c2f121366073bd6f2944ee0d9c5ec664a4cd09 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/FailureMechanismContributionNormChangeHandler.cs (.../FailureMechanismContributionNormChangeHandler.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/FailureMechanismContributionNormChangeHandler.cs (.../FailureMechanismContributionNormChangeHandler.cs) (revision 66c2f121366073bd6f2944ee0d9c5ec664a4cd09) @@ -98,10 +98,8 @@ affectedObjects.OfType().Count()); } - if (assessmentSection.HydraulicBoundaryDatabase != null) - { - affectedObjects.AddRange(ClearAllHydraulicBoundaryLocationOutput()); - } + affectedObjects.AddRange(ClearAllHydraulicBoundaryLocationOutput()); + return affectedObjects; } Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -rdf5853e34e5c42f878c5ceccdada111743837ba4 -r66c2f121366073bd6f2944ee0d9c5ec664a4cd09 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision df5853e34e5c42f878c5ceccdada111743837ba4) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 66c2f121366073bd6f2944ee0d9c5ec664a4cd09) @@ -835,8 +835,8 @@ { return; } - IEnumerable sectionsWithDatabase = ringtoetsProject.AssessmentSections.Where(i => i.HydraulicBoundaryDatabase != null); - foreach (AssessmentSection section in sectionsWithDatabase) + IEnumerable sectionsWithHydraulicBoundaryDatabaseCoupled = ringtoetsProject.AssessmentSections.Where(i => i.HydraulicBoundaryDatabase.IsCoupled()); + foreach (AssessmentSection section in sectionsWithHydraulicBoundaryDatabaseCoupled) { string validationProblem = HydraulicBoundaryDatabaseHelper.ValidateFilesForCalculation(section.HydraulicBoundaryDatabase.FilePath, section.HydraulicBoundaryDatabase.EffectivePreprocessorDirectory()); Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsPluginTest.cs =================================================================== diff -u -r62ff90f02ef1ff3692a32dc3eef415e51a774223 -r66c2f121366073bd6f2944ee0d9c5ec664a4cd09 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsPluginTest.cs (.../RingtoetsPluginTest.cs) (revision 62ff90f02ef1ff3692a32dc3eef415e51a774223) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsPluginTest.cs (.../RingtoetsPluginTest.cs) (revision 66c2f121366073bd6f2944ee0d9c5ec664a4cd09) @@ -67,7 +67,7 @@ public class RingtoetsPluginTest : NUnitFormTest { [Test] - [Apartment(ApartmentState.STA)] // For creation of XAML UI component + [Apartment(ApartmentState.STA)] public void DefaultConstructor_ExpectedValues() { // Call @@ -80,8 +80,8 @@ } [Test] - [Apartment(ApartmentState.STA)] // For creation of XAML UI component - public void GivenPluginWithGuiSet_WhenProjectOnGuiChangesToProjectWithoutHydraulicBoundaryDatabase_ThenNoWarning() + [Apartment(ApartmentState.STA)] + public void GivenPluginWithGuiSet_WhenProjectOnGuiChangesToProjectWithHydraulicBoundaryDatabaseNotCoupled_ThenNoWarning() { // Given var mocks = new MockRepository(); @@ -96,8 +96,16 @@ plugin.Gui = gui; gui.Run(); + var project = new RingtoetsProject + { + AssessmentSections = + { + new AssessmentSection(AssessmentSectionComposition.Dike) + } + }; + // When - Action action = () => gui.SetProject(new RingtoetsProject(), null); + Action action = () => gui.SetProject(project, null); // Then TestHelper.AssertLogMessagesCount(action, 0); @@ -109,8 +117,8 @@ } [Test] - [Apartment(ApartmentState.STA)] // For creation of XAML UI component - public void GivenPluginWithGuiSet_WhenProjectOnGuiChangesToProjectWithHydraulicBoundaryDatabaseWithExistingLocation_ThenNoWarning() + [Apartment(ApartmentState.STA)] + public void GivenPluginWithGuiSet_WhenProjectOnGuiChangesToProjectWithHydraulicBoundaryDatabaseCoupledToExistingLocation_ThenNoWarning() { // Given var mocks = new MockRepository(); @@ -128,15 +136,19 @@ plugin.Gui = gui; gui.Run(); - var project = new RingtoetsProject(); - var section = new AssessmentSection(AssessmentSectionComposition.Dike) + var project = new RingtoetsProject { - HydraulicBoundaryDatabase = + AssessmentSections = { - FilePath = testFilePath + new AssessmentSection(AssessmentSectionComposition.Dike) + { + HydraulicBoundaryDatabase = + { + FilePath = testFilePath + } + } } }; - project.AssessmentSections.Add(section); // When Action action = () => gui.SetProject(project, null); @@ -151,8 +163,8 @@ } [Test] - [Apartment(ApartmentState.STA)] // For creation of XAML UI component - public void GivenPluginWithGuiSet_WhenProjectOnGuiChangesToProjectWithHydraulicBoundaryDatabaseWithNonExistingLocation_ThenWarning() + [Apartment(ApartmentState.STA)] + public void GivenPluginWithGuiSet_WhenProjectOnGuiChangesToProjectWithHydraulicBoundaryDatabaseCoupledToNonExistingLocation_ThenWarning() { // Given var mocks = new MockRepository(); @@ -164,26 +176,30 @@ { using (var plugin = new RingtoetsPlugin()) { - var project = new RingtoetsProject(); - const string nonExistingFileExistingFile = "not_existing_file"; + plugin.Gui = gui; + gui.Run(); - var section = new AssessmentSection(AssessmentSectionComposition.Dike) + const string nonExistingFile = "not_existing_file"; + + var project = new RingtoetsProject { - HydraulicBoundaryDatabase = + AssessmentSections = { - FilePath = nonExistingFileExistingFile + new AssessmentSection(AssessmentSectionComposition.Dike) + { + HydraulicBoundaryDatabase = + { + FilePath = nonExistingFile + } + } } }; - project.AssessmentSections.Add(section); - plugin.Gui = gui; - gui.Run(); - // When Action action = () => gui.SetProject(project, null); // Then - string fileMissingMessage = $"Fout bij het lezen van bestand '{nonExistingFileExistingFile}': het bestand bestaat niet."; + string fileMissingMessage = $"Fout bij het lezen van bestand '{nonExistingFile}': het bestand bestaat niet."; string message = string.Format( RingtoetsCommonServiceResources.Hydraulic_boundary_database_connection_failed_0_, fileMissingMessage);