Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs =================================================================== diff -u -r5b1a797e4e679b7985b2785492929565b28431ae -r0562f364928a2df1d89f8554c608f423cd781959 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs (.../AssessmentSectionMergeDataProviderDialog.cs) (revision 5b1a797e4e679b7985b2785492929565b28431ae) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs (.../AssessmentSectionMergeDataProviderDialog.cs) (revision 0562f364928a2df1d89f8554c608f423cd781959) @@ -26,6 +26,7 @@ using Core.Common.Controls.Dialogs; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data; +using Ringtoets.Integration.Data.Merge; using Ringtoets.Integration.Forms.Properties; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources; @@ -60,7 +61,7 @@ public AssessmentSection SelectedAssessmentSection { get; private set; } public IEnumerable SelectedFailureMechanisms { get; private set; } - public bool SelectData(IEnumerable assessmentSections) + public AssessmentSectionMergeData SelectData(IEnumerable assessmentSections) { if (assessmentSections == null) { @@ -70,7 +71,9 @@ SetComboBoxData(assessmentSections); ShowDialog(); - return isDataSelected; + return isDataSelected + ? new AssessmentSectionMergeData(SelectedAssessmentSection, SelectedFailureMechanisms) + : null; } protected override void Dispose(bool disposing) Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/IAssessmentSectionMergeDataProvider.cs =================================================================== diff -u -r5b1a797e4e679b7985b2785492929565b28431ae -r0562f364928a2df1d89f8554c608f423cd781959 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/IAssessmentSectionMergeDataProvider.cs (.../IAssessmentSectionMergeDataProvider.cs) (revision 5b1a797e4e679b7985b2785492929565b28431ae) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/IAssessmentSectionMergeDataProvider.cs (.../IAssessmentSectionMergeDataProvider.cs) (revision 0562f364928a2df1d89f8554c608f423cd781959) @@ -23,6 +23,7 @@ using System.Collections.Generic; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data; +using Ringtoets.Integration.Data.Merge; namespace Ringtoets.Integration.Forms.Merge { @@ -45,9 +46,9 @@ /// Select the data to merge. /// /// The collection of assessment sections to select from. - /// Indicator whether selection succeeded. + /// The selected merge data. /// Thrown when /// is null. - bool SelectData(IEnumerable assessmentSections); + AssessmentSectionMergeData SelectData(IEnumerable assessmentSections); } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMerger.cs =================================================================== diff -u -rc1ae178a5c1aa92c14a9c71e9db0606b0de30385 -r0562f364928a2df1d89f8554c608f423cd781959 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMerger.cs (.../AssessmentSectionMerger.cs) (revision c1ae178a5c1aa92c14a9c71e9db0606b0de30385) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMerger.cs (.../AssessmentSectionMerger.cs) (revision 0562f364928a2df1d89f8554c608f423cd781959) @@ -25,6 +25,7 @@ using log4net; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data; +using Ringtoets.Integration.Data.Merge; using Ringtoets.Integration.Forms.Merge; using Ringtoets.Integration.Plugin.Handlers; using Ringtoets.Integration.Plugin.Properties; @@ -136,22 +137,15 @@ return; } - if (!mergeDataProvider.SelectData(matchingAssessmentSections)) + AssessmentSectionMergeData mergeData = mergeDataProvider.SelectData(matchingAssessmentSections); + + if (mergeData == null) { LogCancelMessage(); return; } - AssessmentSection assessmentSectionToMerge = mergeDataProvider.SelectedAssessmentSection; - IEnumerable failureMechanismToMerge = mergeDataProvider.SelectedFailureMechanisms; - - if (assessmentSectionToMerge == null || failureMechanismToMerge == null) - { - LogError(Resources.AssessmentSectionMerger_No_AssessmentSection_selected); - return; - } - - PerformMerge(assessmentSection, assessmentSectionToMerge, failureMechanismToMerge); + PerformMerge(assessmentSection, mergeData.AssessmentSection, mergeData.FailureMechanisms); } private void PerformMerge(AssessmentSection assessmentSection, AssessmentSection assessmentSectionToMerge, IEnumerable failureMechanismToMerge) Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.Designer.cs =================================================================== diff -u -r71c405e357fa8845fcb3485a4bcc7aa393fe31a7 -r0562f364928a2df1d89f8554c608f423cd781959 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 71c405e357fa8845fcb3485a4bcc7aa393fe31a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 0562f364928a2df1d89f8554c608f423cd781959) @@ -142,15 +142,6 @@ } /// - /// Looks up a localized string similar to Er is geen traject geselecteerd.. - /// - public static string AssessmentSectionMerger_No_AssessmentSection_selected { - get { - return ResourceManager.GetString("AssessmentSectionMerger_No_AssessmentSection_selected", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Er zijn geen trajecten gevonden die samengevoegd kunnen worden.. /// public static string AssessmentSectionMerger_No_matching_AssessmentSections { Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.resx =================================================================== diff -u -r71c405e357fa8845fcb3485a4bcc7aa393fe31a7 -r0562f364928a2df1d89f8554c608f423cd781959 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 71c405e357fa8845fcb3485a4bcc7aa393fe31a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 0562f364928a2df1d89f8554c608f423cd781959) @@ -188,9 +188,6 @@ Er zijn geen trajecten gevonden die samengevoegd kunnen worden. - - Er is geen traject geselecteerd. - Samenvoegen van trajecten is gelukt. Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Merge/AssessmentSectionMergeDataProviderDialogTest.cs =================================================================== diff -u -r5b1a797e4e679b7985b2785492929565b28431ae -r0562f364928a2df1d89f8554c608f423cd781959 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Merge/AssessmentSectionMergeDataProviderDialogTest.cs (.../AssessmentSectionMergeDataProviderDialogTest.cs) (revision 5b1a797e4e679b7985b2785492929565b28431ae) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Merge/AssessmentSectionMergeDataProviderDialogTest.cs (.../AssessmentSectionMergeDataProviderDialogTest.cs) (revision 0562f364928a2df1d89f8554c608f423cd781959) @@ -36,6 +36,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.Properties; using Ringtoets.Integration.Data; +using Ringtoets.Integration.Data.Merge; using Ringtoets.Integration.Forms.Merge; using Ringtoets.Integration.TestUtil; using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources; @@ -275,7 +276,7 @@ [Test] [Apartment(ApartmentState.STA)] - public void GivenValidDialog_WhenSelectDataCalledAndCancelPressed_ThenSelectedDataNullAndReturnsFalse() + public void GivenValidDialog_WhenSelectDataCalledAndCancelPressed_ThenReturnsNull() { // Given DialogBoxHandler = (formName, wnd) => @@ -291,21 +292,19 @@ using (var dialog = new AssessmentSectionMergeDataProviderDialog(dialogParent)) { // When - bool result = dialog.SelectData(new[] + AssessmentSectionMergeData result = dialog.SelectData(new[] { TestDataGenerator.GetAssessmentSectionWithAllCalculationConfigurations() }); // Then - Assert.IsFalse(result); - Assert.IsNull(dialog.SelectedAssessmentSection); - Assert.IsNull(dialog.SelectedFailureMechanisms); + Assert.IsNull(result); } } [Test] [Apartment(ApartmentState.STA)] - public void GivenValidDialog_WhenSelectDataCalledAndDataSelectedAndImportPressed_ThenSelectedDataSetAndReturnsTrue() + public void GivenValidDialog_WhenSelectDataCalledAndDataSelectedAndImportPressed_ThenReturnsSelectedData() { // Given var random = new Random(21); @@ -336,17 +335,16 @@ using (var dialog = new AssessmentSectionMergeDataProviderDialog(dialogParent)) { // When - bool result = dialog.SelectData(new[] + AssessmentSectionMergeData result = dialog.SelectData(new[] { new AssessmentSection(random.NextEnumValue()), selectedAssessmentSection }); // Then - Assert.IsTrue(result); - Assert.AreSame(selectedAssessmentSection, dialog.SelectedAssessmentSection); + Assert.AreSame(selectedAssessmentSection, result.AssessmentSection); - IEnumerable selectedFailureMechanisms = dialog.SelectedFailureMechanisms; + IEnumerable selectedFailureMechanisms = result.FailureMechanisms; Assert.AreEqual(2, selectedFailureMechanisms.Count()); CollectionAssert.AreEquivalent(new IFailureMechanism[] { Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Merge/AssessmentSectionMergerTest.cs =================================================================== diff -u -r60dff87364254875c44ffe473bea705fadb84fb9 -r0562f364928a2df1d89f8554c608f423cd781959 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Merge/AssessmentSectionMergerTest.cs (.../AssessmentSectionMergerTest.cs) (revision 60dff87364254875c44ffe473bea705fadb84fb9) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Merge/AssessmentSectionMergerTest.cs (.../AssessmentSectionMergerTest.cs) (revision 0562f364928a2df1d89f8554c608f423cd781959) @@ -28,6 +28,7 @@ using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data; +using Ringtoets.Integration.Data.Merge; using Ringtoets.Integration.Forms.Merge; using Ringtoets.Integration.Plugin.Handlers; using Ringtoets.Integration.Plugin.Merge; @@ -264,7 +265,7 @@ } [Test] - public void GivenMatchedAssessmentSection_WhenMergeDataProviderReturnsFalse_ThenLogCancelMessageAndAbort() + public void GivenMatchedAssessmentSection_WhenMergeDataProviderReturnsNull_ThenLogCancelMessageAndAbort() { // Given var mocks = new MockRepository(); @@ -279,7 +280,7 @@ var comparer = mocks.StrictMock(); comparer.Expect(c => c.Compare(null, null)).IgnoreArguments().Return(true); var mergeDataProvider = mocks.StrictMock(); - mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return(false); + mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return(null); var mergeHandler = mocks.StrictMock(); mocks.ReplayAll(); @@ -294,70 +295,6 @@ } [Test] - public void GivenMatchedAssessmentSection_WhenMergeDataProviderReturnsTrueButSelectedAssessmentSectionNull_ThenLogErrorMessageAndAbort() - { - // Given - var mocks = new MockRepository(); - var filePathProvider = mocks.StrictMock(); - filePathProvider.Expect(helper => helper.GetFilePath()).Return(string.Empty); - var assessmentSectionProvider = mocks.StrictMock(); - assessmentSectionProvider.Expect(asp => asp.GetAssessmentSections(null)).IgnoreArguments() - .Return(new[] - { - new AssessmentSection(AssessmentSectionComposition.Dike) - }); - var comparer = mocks.StrictMock(); - comparer.Expect(c => c.Compare(null, null)).IgnoreArguments().Return(true); - var mergeDataProvider = mocks.StrictMock(); - mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return(true); - mergeDataProvider.Expect(mdp => mdp.SelectedAssessmentSection).Return(null); - mergeDataProvider.Expect(mdp => mdp.SelectedFailureMechanisms).Return(Enumerable.Empty()); - var mergeHandler = mocks.StrictMock(); - mocks.ReplayAll(); - - var merger = new AssessmentSectionMerger(filePathProvider, assessmentSectionProvider, comparer, mergeDataProvider, mergeHandler); - - // When - Action call = () => merger.StartMerge(new AssessmentSection(AssessmentSectionComposition.Dike)); - - // Then - TestHelper.AssertLogMessageWithLevelIsGenerated(call, new Tuple("Er is geen traject geselecteerd.", LogLevelConstant.Error), 1); - mocks.VerifyAll(); - } - - [Test] - public void GivenMatchedAssessmentSection_WhenMergeDataProviderReturnsTrueButSelectedFailureMechanismsNull_ThenLogErrorMessageAndAbort() - { - // Given - var mocks = new MockRepository(); - var filePathProvider = mocks.StrictMock(); - filePathProvider.Expect(helper => helper.GetFilePath()).Return(string.Empty); - var assessmentSectionProvider = mocks.StrictMock(); - assessmentSectionProvider.Expect(asp => asp.GetAssessmentSections(null)).IgnoreArguments() - .Return(new[] - { - new AssessmentSection(AssessmentSectionComposition.Dike) - }); - var comparer = mocks.StrictMock(); - comparer.Expect(c => c.Compare(null, null)).IgnoreArguments().Return(true); - var mergeDataProvider = mocks.StrictMock(); - mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return(true); - mergeDataProvider.Expect(mdp => mdp.SelectedAssessmentSection).Return(new AssessmentSection(AssessmentSectionComposition.Dike)); - mergeDataProvider.Expect(mdp => mdp.SelectedFailureMechanisms).Return(null); - var mergeHandler = mocks.StrictMock(); - mocks.ReplayAll(); - - var merger = new AssessmentSectionMerger(filePathProvider, assessmentSectionProvider, comparer, mergeDataProvider, mergeHandler); - - // When - Action call = () => merger.StartMerge(new AssessmentSection(AssessmentSectionComposition.Dike)); - - // Then - TestHelper.AssertLogMessageWithLevelIsGenerated(call, new Tuple("Er is geen traject geselecteerd.", LogLevelConstant.Error), 1); - mocks.VerifyAll(); - } - - [Test] public void GivenMatchedAssessmentSection_WhenAllDataValid_ThenMergePerformedAndLogged() { // Given @@ -381,9 +318,8 @@ var comparer = mocks.StrictMock(); comparer.Expect(c => c.Compare(originalAssessmentSection, assessmentSectionToMerge)).Return(true); var mergeDataProvider = mocks.StrictMock(); - mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return(true); - mergeDataProvider.Expect(mdp => mdp.SelectedAssessmentSection).Return(assessmentSectionToMerge); - mergeDataProvider.Expect(mdp => mdp.SelectedFailureMechanisms).Return(failureMechanismsToMerge); + mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return( + new AssessmentSectionMergeData(assessmentSectionToMerge, failureMechanismsToMerge)); var mergeHandler = mocks.StrictMock(); mergeHandler.Expect(mh => mh.PerformMerge(originalAssessmentSection, assessmentSectionToMerge, failureMechanismsToMerge)); mocks.ReplayAll(); @@ -425,9 +361,8 @@ var comparer = mocks.StrictMock(); comparer.Expect(c => c.Compare(originalAssessmentSection, assessmentSectionToMerge)).Return(true); var mergeDataProvider = mocks.StrictMock(); - mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return(true); - mergeDataProvider.Expect(mdp => mdp.SelectedAssessmentSection).Return(assessmentSectionToMerge); - mergeDataProvider.Expect(mdp => mdp.SelectedFailureMechanisms).Return(failureMechanismsToMerge); + mergeDataProvider.Expect(mdp => mdp.SelectData(null)).IgnoreArguments().Return( + new AssessmentSectionMergeData(assessmentSectionToMerge, failureMechanismsToMerge)); var mergeHandler = mocks.StrictMock(); mergeHandler.Expect(mh => mh.PerformMerge(originalAssessmentSection, assessmentSectionToMerge, failureMechanismsToMerge)).Throw(new Exception()); mocks.ReplayAll();