Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/BackgroundMapDataSelectionDialogTest.cs =================================================================== diff -u -r7dcf169799c42e16f0badadb62624806c4f7fb00 -r32e66ad63b1d2ddd01a6fb7a9fe55c75a7cd276d --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/BackgroundMapDataSelectionDialogTest.cs (.../BackgroundMapDataSelectionDialogTest.cs) (revision 7dcf169799c42e16f0badadb62624806c4f7fb00) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/BackgroundMapDataSelectionDialogTest.cs (.../BackgroundMapDataSelectionDialogTest.cs) (revision 32e66ad63b1d2ddd01a6fb7a9fe55c75a7cd276d) @@ -235,6 +235,47 @@ } [Test] + public void GivenValidDialogWithoutMapData_WhenBackgroundMapDataSelectionControlSwitchedBackAndForth_ThenSelectButtonAsExpected() + { + // Given + mockRepository.ReplayAll(); + + using (new UseCustomSettingsHelper(new TestSettingsHelper + { + ApplicationLocalUserSettingsDirectory = TestHelper.GetTestDataPath(TestDataPath.Core.Components.Gis.IO, "noConfig") + })) + using (new UseCustomTileSourceFactoryConfig(tileFactory)) + using (var dialogParent = new Form()) + using (var dialog = new BackgroundMapDataSelectionDialog(dialogParent, null)) + { + dialog.Show(); + + var selectButton = (Button) new ButtonTester("selectButton", dialog).TheObject; + var comboBox = (ComboBox) new ComboBoxTester("mapLayerComboBox", dialog).TheObject; + WellKnownMapDataControl wellKnownMapDataControl = GetComboBoxItem(comboBox); + WmtsLocationControl wmtsLocationControl = GetComboBoxItem(comboBox); + + // Precondition state + comboBox.SelectedItem = wmtsLocationControl; + var wmtsDataGridViewControl = (DataGridViewControl) new ControlTester("dataGridViewControl", dialog).TheObject; + Assert.IsNull(wmtsDataGridViewControl.CurrentRow); + Assert.IsFalse(selectButton.Enabled); + + // When + comboBox.SelectedItem = wellKnownMapDataControl; + var wellKnownDataGridViewControl = (DataGridViewControl) new ControlTester("dataGridViewControl", dialog).TheObject; + DataGridViewRow currentRow = wellKnownDataGridViewControl.CurrentRow; + Assert.AreEqual(0, currentRow.Index); + Assert.IsTrue(selectButton.Enabled); + + // Then + comboBox.SelectedItem = wmtsLocationControl; + Assert.IsNull(wmtsDataGridViewControl.CurrentRow); + Assert.IsFalse(selectButton.Enabled); + } + } + + [Test] public void GivenValidDialog_WhenControlSwitched_ThenDoesNotListenToEventOfOldControl() { // Given @@ -262,11 +303,14 @@ dialog.Show(); var comboBox = (ComboBox) new ComboBoxTester("mapLayerComboBox", dialog).TheObject; - var wmtsLocationControl = (WmtsLocationControl) comboBox.SelectedItem; + WellKnownMapDataControl wellKnownMapDataControl = GetComboBoxItem(comboBox); + WmtsLocationControl wmtsLocationControl = GetComboBoxItem(comboBox); + + comboBox.SelectedItem = wmtsLocationControl; var wmtsDataGridViewControl = (DataGridViewControl) new ControlTester("dataGridViewControl", dialog).TheObject; wmtsLocationControl.SelectedMapDataChanged += (sender, args) => { wmtsLocationControlSelectedMapDataChanged++; }; - comboBox.SelectedItem = GetComboBoxItem(comboBox); + comboBox.SelectedItem = wellKnownMapDataControl; var wellKnownDataGridViewControl = (DataGridViewControl) new ControlTester("dataGridViewControl", dialog).TheObject; wellKnownDataGridViewControl.ClearCurrentCell();