Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/BackgroundMapDataSelectionDialog.cs
===================================================================
diff -u -r3c1b0b97a6f8a5f3df4b9dad0164e69a886d1330 -rf35a1bdec32700c5cb0027d714c8a51dfc118e0d
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/BackgroundMapDataSelectionDialog.cs (.../BackgroundMapDataSelectionDialog.cs) (revision 3c1b0b97a6f8a5f3df4b9dad0164e69a886d1330)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/BackgroundMapDataSelectionDialog.cs (.../BackgroundMapDataSelectionDialog.cs) (revision f35a1bdec32700c5cb0027d714c8a51dfc118e0d)
@@ -23,7 +23,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
-using Core.Common.Controls.DataGrid;
using Core.Common.Controls.Dialogs;
using Core.Components.DotSpatial.Forms.Views;
using Core.Components.Gis.Data;
@@ -60,6 +59,17 @@
}
///
+ /// Creates a new instance of .
+ ///
+ /// The parent of the dialog.
+ /// The active map data.
+ /// Thrown when is null.
+ public BackgroundMapDataSelectionDialog(IWin32Window dialogParent, WmtsMapData mapData) : this(dialogParent)
+ {
+ SelectedMapData = mapData;
+ }
+
+ ///
/// Gets the selected or null if none selected.
///
public WmtsMapData SelectedMapData { get; private set; }
@@ -112,7 +122,7 @@
{
return cancelButton;
}
-
+
#endregion
#region ComboBox
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs
===================================================================
diff -u -ra52c36344e544ee981eb356ec1d79b6569338594 -rf35a1bdec32700c5cb0027d714c8a51dfc118e0d
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision a52c36344e544ee981eb356ec1d79b6569338594)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision f35a1bdec32700c5cb0027d714c8a51dfc118e0d)
@@ -892,22 +892,23 @@
var mapDataItem = new StrictContextMenuItem(
RingtoetsIntegrationPluginResources.BackgroundMapData_SelectMapData,
RingtoetsIntegrationPluginResources.BackgroundMapData_SelectMapData_Tooltip,
- RingtoetsCommonFormsResources.MapsIcon, (sender, args) => SelectMapData(assessmentSection));
+ RingtoetsCommonFormsResources.MapsIcon, (sender, args) => SelectMapData(assessmentSection, nodeData));
return Gui.Get(nodeData, treeViewControl)
.AddCustomItem(mapDataItem)
.AddPropertiesItem()
.Build();
}
- private void SelectMapData(IAssessmentSection assessmentSection)
+ private void SelectMapData(IAssessmentSection assessmentSection, BackgroundMapDataContext backgroundMapDataContext)
{
if (assessmentSection == null)
{
return;
}
- using (var dialog = new BackgroundMapDataSelectionDialog(Gui.MainWindow))
+ WmtsMapData currentMapData = backgroundMapDataContext.WrappedData;
+ using (var dialog = new BackgroundMapDataSelectionDialog(Gui.MainWindow, currentMapData))
{
if (dialog.ShowDialog() == DialogResult.OK)
{
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/BackgroundMapDataSelectionDialogTest.cs
===================================================================
diff -u -rd506ab6eea64d53852f6419f39493e3a326078b0 -rf35a1bdec32700c5cb0027d714c8a51dfc118e0d
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/BackgroundMapDataSelectionDialogTest.cs (.../BackgroundMapDataSelectionDialogTest.cs) (revision d506ab6eea64d53852f6419f39493e3a326078b0)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/BackgroundMapDataSelectionDialogTest.cs (.../BackgroundMapDataSelectionDialogTest.cs) (revision f35a1bdec32700c5cb0027d714c8a51dfc118e0d)
@@ -27,8 +27,10 @@
using Core.Common.Controls.Dialogs;
using Core.Common.TestUtil;
using Core.Components.DotSpatial.Forms.Views;
+using Core.Components.Gis.Data;
using NUnit.Extensions.Forms;
using NUnit.Framework;
+using Rhino.Mocks;
using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources;
namespace Ringtoets.Integration.Forms.Test
@@ -66,7 +68,7 @@
Bitmap actualImage = dialog.Icon.ToBitmap();
TestHelper.AssertImagesAreEqual(expectedImage, actualImage);
- var mapLayers = (ComboBox)new ComboBoxTester("mapLayerComboBox", dialog).TheObject;
+ var mapLayers = (ComboBox) new ComboBoxTester("mapLayerComboBox", dialog).TheObject;
Assert.AreEqual(ComboBoxStyle.DropDownList, mapLayers.DropDownStyle);
Assert.IsInstanceOf>(mapLayers.DataSource);
Assert.AreEqual("DisplayName", mapLayers.DisplayMember);
@@ -76,6 +78,66 @@
}
[Test]
+ public void MapDataConstructor_MapDataNull_DefaultProperties()
+ {
+ // Setup
+ var mockRepository = new MockRepository();
+ var dialogParent = mockRepository.Stub();
+ mockRepository.ReplayAll();
+
+ // Call
+ using (var dialog = new BackgroundMapDataSelectionDialog(dialogParent, null))
+ {
+ // Assert
+ Assert.IsNull(dialog.SelectedMapData);
+ }
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void MapDataConstructor_ParentNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mapData = new WmtsMapData("1", "2", "3", "image/");
+
+ // Call
+ TestDelegate test = () => new BackgroundMapDataSelectionDialog(null, mapData);
+
+ // Assert
+ string parameter = Assert.Throws(test).ParamName;
+ Assert.AreEqual("dialogParent", parameter);
+ }
+
+ [Test]
+ public void MapDataConstructor_WithParents_DefaultProperties()
+ {
+ // Setup
+ var mapData = new WmtsMapData("1", "2", "3", "image/");
+ using (var dialogParent = new Form())
+ {
+ // Call
+ using (var dialog = new BackgroundMapDataSelectionDialog(dialogParent, mapData))
+ {
+ // Assert
+ Assert.IsInstanceOf(dialog);
+ Assert.AreEqual(@"Selecteer achtergrondkaart", dialog.Text);
+ Assert.AreSame(mapData, dialog.SelectedMapData);
+
+ Icon icon = BitmapToIcon(RingtoetsCommonFormsResources.SelectionDialogIcon);
+ Bitmap expectedImage = icon.ToBitmap();
+ Bitmap actualImage = dialog.Icon.ToBitmap();
+ TestHelper.AssertImagesAreEqual(expectedImage, actualImage);
+
+ var mapLayers = (ComboBox) new ComboBoxTester("mapLayerComboBox", dialog).TheObject;
+ Assert.AreEqual(ComboBoxStyle.DropDownList, mapLayers.DropDownStyle);
+ Assert.IsInstanceOf>(mapLayers.DataSource);
+ Assert.AreEqual("DisplayName", mapLayers.DisplayMember);
+ Assert.IsTrue(mapLayers.Sorted);
+ }
+ }
+ }
+
+ [Test]
[Apartment(ApartmentState.STA)]
public void ShowDialog_Always_DefaultProperties()
{
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj
===================================================================
diff -u -rd506ab6eea64d53852f6419f39493e3a326078b0 -rf35a1bdec32700c5cb0027d714c8a51dfc118e0d
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision d506ab6eea64d53852f6419f39493e3a326078b0)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision f35a1bdec32700c5cb0027d714c8a51dfc118e0d)
@@ -142,10 +142,6 @@
{5A91174A-FB95-4C9D-9CA5-81C0B8D4361A}
Core.Components.DotSpatial.Forms
-
- {aa47e858-a2a7-470e-8b2d-c76ae8ed9ccd}
- Core.Components.DotSpatial
-
{4a06df0d-5d75-4bad-a95a-a3db9b7c4ad5}
Core.Components.Gis.Forms
@@ -154,10 +150,6 @@
{318ba582-88c9-4816-a54a-a7e431461de3}
Core.Components.Gis
-
- {9b6f3987-eaf7-4733-80c1-3dcab44d87ae}
- Core.Components.DotSpatial.TestUtil
-
{BF753DB5-973B-4ADF-B0F6-9437325C3466}
Ringtoets.GrassCoverErosionInwards.Data.TestUtil
Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/BackgroundMapDataContextTreeNodeInfoTest.cs
===================================================================
diff -u -r3c1b0b97a6f8a5f3df4b9dad0164e69a886d1330 -rf35a1bdec32700c5cb0027d714c8a51dfc118e0d
--- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/BackgroundMapDataContextTreeNodeInfoTest.cs (.../BackgroundMapDataContextTreeNodeInfoTest.cs) (revision 3c1b0b97a6f8a5f3df4b9dad0164e69a886d1330)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/BackgroundMapDataContextTreeNodeInfoTest.cs (.../BackgroundMapDataContextTreeNodeInfoTest.cs) (revision f35a1bdec32700c5cb0027d714c8a51dfc118e0d)
@@ -21,21 +21,31 @@
using System.Drawing;
using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Base;
using Core.Common.Controls.TreeView;
using Core.Common.Gui;
+using Core.Common.Gui.Commands;
using Core.Common.Gui.ContextMenu;
+using Core.Common.Gui.Forms.MainWindow;
+using Core.Common.Gui.TestUtil.ContextMenu;
using Core.Common.TestUtil;
using Core.Components.Gis.Data;
+using NUnit.Extensions.Forms;
using NUnit.Framework;
using Rhino.Mocks;
+using Ringtoets.Common.Data.TestUtil;
+using Ringtoets.Integration.Forms;
using Ringtoets.Integration.Forms.PresentationObjects;
using Ringtoets.Integration.Forms.Properties;
namespace Ringtoets.Integration.Plugin.Test.TreeNodeInfos
{
[TestFixture]
- public class BackgroundMapDataContextTreeNodeInfoTest
+ public class BackgroundMapDataContextTreeNodeInfoTest : NUnitFormTest
{
+ private readonly int selectContextMenuIndex = 0;
+
[Test]
public void Initialized_Always_ExpectedPropertiesSet()
{
@@ -175,6 +185,222 @@
mockRepository.VerifyAll();
}
+ [Test]
+ public void GivenNoMapDataSet_WhenSelectingValidMapDataFromContextMenu_ThenMapDataSetAndNotifiesObserver()
+ {
+ // Given
+ var mockRepository = new MockRepository();
+ var assessmentSectionObserver = mockRepository.StrictMock();
+ assessmentSectionObserver.Expect(o => o.UpdateObserver());
+
+ var backgroundMapDataObserver = mockRepository.StrictMock();
+ backgroundMapDataObserver.Expect(o => o.UpdateObserver());
+
+ var wmtsMapData = new WmtsMapData("1", "2", "3", "image/");
+ var backgroundMapDataContext = new BackgroundMapDataContext(wmtsMapData);
+
+ using (var treeViewControl = new TreeViewControl())
+ using (var plugin = new RingtoetsPlugin())
+ {
+ var viewCommands = mockRepository.Stub();
+ var mainWindow = mockRepository.Stub();
+
+ var gui = mockRepository.Stub();
+ gui.Stub(g => g.MainWindow).Return(mainWindow);
+ gui.Stub(g => g.ProjectOpened += null).IgnoreArguments();
+ gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments();
+ gui.Stub(g => g.ViewCommands).Return(viewCommands);
+ gui.Stub(cmp => cmp.Get(backgroundMapDataContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder());
+ mockRepository.ReplayAll();
+
+ var assessmentSection = new ObservableTestAssessmentSectionStub();
+ assessmentSection.Attach(assessmentSectionObserver);
+ assessmentSection.BackgroundMapData.Attach(backgroundMapDataObserver);
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var tester = (BackgroundMapDataSelectionDialog) new FormTester(name).TheObject;
+ tester.DialogResult = DialogResult.OK;
+ tester.Close();
+ };
+
+ TreeNodeInfo info = GetInfo(plugin);
+ plugin.Gui = gui;
+
+ using (ContextMenuStrip contextMenuStrip = info.ContextMenuStrip(backgroundMapDataContext, assessmentSection, treeViewControl))
+ {
+ // When
+ contextMenuStrip.Items[selectContextMenuIndex].PerformClick();
+
+ // Then
+ Assert.AreSame(wmtsMapData, assessmentSection.BackgroundMapData.MapData);
+ Assert.IsTrue(assessmentSection.BackgroundMapData.MapData.IsVisible);
+ }
+ }
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void GivenNoMapDataSet_WhenSelectingMapDataFromContextMenuCancelled_ThenNoObserversNotified()
+ {
+ // Given
+ var mockRepository = new MockRepository();
+ var assessmentSectionObserver = mockRepository.StrictMock();
+ var backgroundMapDataObserver = mockRepository.StrictMock();
+
+ var wmtsMapData = new WmtsMapData("1", "2", "3", "image/");
+ var backgroundMapDataContext = new BackgroundMapDataContext(wmtsMapData);
+
+ using (var treeViewControl = new TreeViewControl())
+ using (var plugin = new RingtoetsPlugin())
+ {
+ var viewCommands = mockRepository.Stub();
+ var mainWindow = mockRepository.Stub();
+
+ var gui = mockRepository.Stub();
+ gui.Stub(g => g.MainWindow).Return(mainWindow);
+ gui.Stub(g => g.ProjectOpened += null).IgnoreArguments();
+ gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments();
+ gui.Stub(g => g.ViewCommands).Return(viewCommands);
+ gui.Stub(cmp => cmp.Get(backgroundMapDataContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder());
+ mockRepository.ReplayAll();
+
+ var assessmentSection = new ObservableTestAssessmentSectionStub();
+ assessmentSection.Attach(assessmentSectionObserver);
+ assessmentSection.BackgroundMapData.Attach(backgroundMapDataObserver);
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var tester = (BackgroundMapDataSelectionDialog) new FormTester(name).TheObject;
+ tester.DialogResult = DialogResult.Cancel;
+ tester.Close();
+ };
+
+ TreeNodeInfo info = GetInfo(plugin);
+ plugin.Gui = gui;
+
+ using (ContextMenuStrip contextMenuStrip = info.ContextMenuStrip(backgroundMapDataContext, assessmentSection, treeViewControl))
+ {
+ // When
+ contextMenuStrip.Items[selectContextMenuIndex].PerformClick();
+
+ // Then
+ Assert.IsNull(assessmentSection.BackgroundMapData.MapData);
+ }
+ }
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void GivenMapDataSet_WhenSelectingValidMapDataFromContextMenu_ThenMapDataSetAndNotifiesObserver()
+ {
+ // Given
+ var mockRepository = new MockRepository();
+ var assessmentSectionObserver = mockRepository.StrictMock();
+ assessmentSectionObserver.Expect(o => o.UpdateObserver());
+
+ var backgroundMapDataObserver = mockRepository.StrictMock();
+ backgroundMapDataObserver.Expect(o => o.UpdateObserver());
+
+ var wmtsMapData = new WmtsMapData("1", "2", "3", "image/");
+ var backgroundMapDataContext = new BackgroundMapDataContext(wmtsMapData);
+
+ using (var treeViewControl = new TreeViewControl())
+ using (var plugin = new RingtoetsPlugin())
+ {
+ var viewCommands = mockRepository.Stub();
+ var mainWindow = mockRepository.Stub();
+
+ var gui = mockRepository.Stub();
+ gui.Stub(g => g.MainWindow).Return(mainWindow);
+ gui.Stub(g => g.ProjectOpened += null).IgnoreArguments();
+ gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments();
+ gui.Stub(g => g.ViewCommands).Return(viewCommands);
+ gui.Stub(cmp => cmp.Get(backgroundMapDataContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder());
+ mockRepository.ReplayAll();
+
+ var assessmentSection = new ObservableTestAssessmentSectionStub();
+ assessmentSection.Attach(assessmentSectionObserver);
+ assessmentSection.BackgroundMapData.Attach(backgroundMapDataObserver);
+
+ assessmentSection.BackgroundMapData.MapData = wmtsMapData;
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var tester = (BackgroundMapDataSelectionDialog) new FormTester(name).TheObject;
+ tester.DialogResult = DialogResult.OK;
+ tester.Close();
+ };
+
+ TreeNodeInfo info = GetInfo(plugin);
+ plugin.Gui = gui;
+
+ using (ContextMenuStrip contextMenuStrip = info.ContextMenuStrip(backgroundMapDataContext, assessmentSection, treeViewControl))
+ {
+ // When
+ contextMenuStrip.Items[selectContextMenuIndex].PerformClick();
+
+ // Then
+ Assert.AreSame(wmtsMapData, assessmentSection.BackgroundMapData.MapData);
+ Assert.IsTrue(assessmentSection.BackgroundMapData.MapData.IsVisible);
+ }
+ }
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void GivenMapDataSet_WhenSelectingMapDataFromContextMenuCancelled_ThenNoObserversNotified()
+ {
+ // Given
+ var mockRepository = new MockRepository();
+ var assessmentSectionObserver = mockRepository.StrictMock();
+ var backgroundMapDataObserver = mockRepository.StrictMock();
+
+ var wmtsMapData = new WmtsMapData("1", "2", "3", "image/");
+ var backgroundMapDataContext = new BackgroundMapDataContext(wmtsMapData);
+
+ using (var treeViewControl = new TreeViewControl())
+ using (var plugin = new RingtoetsPlugin())
+ {
+ var viewCommands = mockRepository.Stub();
+ var mainWindow = mockRepository.Stub();
+
+ var gui = mockRepository.Stub();
+ gui.Stub(g => g.MainWindow).Return(mainWindow);
+ gui.Stub(g => g.ProjectOpened += null).IgnoreArguments();
+ gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments();
+ gui.Stub(g => g.ViewCommands).Return(viewCommands);
+ gui.Stub(cmp => cmp.Get(backgroundMapDataContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder());
+ mockRepository.ReplayAll();
+
+ var assessmentSection = new ObservableTestAssessmentSectionStub();
+ assessmentSection.Attach(assessmentSectionObserver);
+ assessmentSection.BackgroundMapData.Attach(backgroundMapDataObserver);
+ assessmentSection.BackgroundMapData.MapData = wmtsMapData;
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var tester = (BackgroundMapDataSelectionDialog) new FormTester(name).TheObject;
+ tester.DialogResult = DialogResult.Cancel;
+ tester.Close();
+ };
+
+ TreeNodeInfo info = GetInfo(plugin);
+ plugin.Gui = gui;
+
+ using (ContextMenuStrip contextMenuStrip = info.ContextMenuStrip(backgroundMapDataContext, assessmentSection, treeViewControl))
+ {
+ // When
+ contextMenuStrip.Items[selectContextMenuIndex].PerformClick();
+
+ // Then
+ Assert.AreEqual(wmtsMapData, assessmentSection.BackgroundMapData.MapData);
+ Assert.IsFalse(assessmentSection.BackgroundMapData.MapData.IsVisible);
+ }
+ }
+ mockRepository.VerifyAll();
+ }
+
private static TreeNodeInfo GetInfo(RingtoetsPlugin plugin)
{
return plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(BackgroundMapDataContext));
Index: Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/DataImportHelper.cs
===================================================================
diff -u -r49adfd44a6a7ffd0cb8eedc291b2343f4c0bc632 -rf35a1bdec32700c5cb0027d714c8a51dfc118e0d
--- Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/DataImportHelper.cs (.../DataImportHelper.cs) (revision 49adfd44a6a7ffd0cb8eedc291b2343f4c0bc632)
+++ Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/DataImportHelper.cs (.../DataImportHelper.cs) (revision f35a1bdec32700c5cb0027d714c8a51dfc118e0d)
@@ -36,7 +36,6 @@
using Ringtoets.Integration.Plugin.Handlers;
using Ringtoets.Piping.Data;
using Ringtoets.Piping.IO.Importers;
-using Ringtoets.Piping.IO.TestUtil;
using Ringtoets.Piping.Plugin.FileImporter;
using Ringtoets.Piping.Primitives;
Index: Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/Ringtoets.Integration.TestUtils.csproj
===================================================================
diff -u -r78cc5b59d47ca61eb812d0c69c7a17a4570e4ddc -rf35a1bdec32700c5cb0027d714c8a51dfc118e0d
--- Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/Ringtoets.Integration.TestUtils.csproj (.../Ringtoets.Integration.TestUtils.csproj) (revision 78cc5b59d47ca61eb812d0c69c7a17a4570e4ddc)
+++ Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/Ringtoets.Integration.TestUtils.csproj (.../Ringtoets.Integration.TestUtils.csproj) (revision f35a1bdec32700c5cb0027d714c8a51dfc118e0d)
@@ -143,10 +143,6 @@
{a4972765-ddbb-4a1e-b17c-7185577e5591}
Ringtoets.Piping.Integration.TestUtils
-
- {4A675B7E-96AD-4911-B154-85385C9330C3}
- Ringtoets.Piping.IO.TestUtil
-
{87c2c553-c0bc-40bf-b1ea-b83bff357f27}
Ringtoets.Revetment.Data