Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/CalculationsViewTest.cs =================================================================== diff -u -rddfa3e264324958cb503ad2d09fad6e9d15bce19 -r300ca5138b660e253b9c5e706799769a7f3a8cb6 --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/CalculationsViewTest.cs (.../CalculationsViewTest.cs) (revision ddfa3e264324958cb503ad2d09fad6e9d15bce19) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/CalculationsViewTest.cs (.../CalculationsViewTest.cs) (revision 300ca5138b660e253b9c5e706799769a7f3a8cb6) @@ -830,13 +830,12 @@ SetReadOnlyState(initialReadOnlyState); } + public IDictionary ColumnStateDefinitions { get; } + public void SetReadOnlyState(bool readOnlyState) { - ColumnStateHelper.SetColumnState(ColumnStateDefinitions[nameColumnIndex], readOnlyState); ColumnStateHelper.SetColumnState(ColumnStateDefinitions[selectableHydraulicBoundaryLocationsColumnIndex], readOnlyState); } - - public IDictionary ColumnStateDefinitions { get; } } private class TestCalculationsViewWithColumnStateDefinitions : TestCalculationsViewBase @@ -876,16 +875,16 @@ [Test] public void GivenCalculationsViewWithoutColumnStateDefinitions_ThenColumnStatesAsExpected() { - // Setup + // Given var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - // Call ShowFullyConfiguredCalculationsView(assessmentSection); - // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Then Assert.AreEqual(false, dataGridView.Rows[0].Cells[nameColumnIndex].ReadOnly); Assert.AreEqual(false, dataGridView.Rows[0].Cells[selectableHydraulicBoundaryLocationsColumnIndex].ReadOnly); } @@ -895,20 +894,48 @@ [TestCase(false)] public void GivenCalculationsViewWithColumnStateDefinitions_ThenColumnStatesAsExpected(bool initialReadOnlyState) { - // Setup + // Given var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - // Call ShowFullyConfiguredCalculationsViewWithColumnStateDefinitions(assessmentSection, initialReadOnlyState); - // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - Assert.AreEqual(initialReadOnlyState, dataGridView.Rows[0].Cells[nameColumnIndex].ReadOnly); + + // Then + Assert.AreEqual(false, dataGridView.Rows[0].Cells[nameColumnIndex].ReadOnly); Assert.AreEqual(initialReadOnlyState, dataGridView.Rows[0].Cells[selectableHydraulicBoundaryLocationsColumnIndex].ReadOnly); } + [Test] + [TestCase(true)] + [TestCase(false)] + public void GivenCalculationsViewWithColumnStateDefinitions_WhenColumnStateChangedAndCalculationInputObserversNotifiedDuringEditAction_ThenColumnStatesAsExpected(bool initialReadOnlyState) + { + // Given + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + ShowFullyConfiguredCalculationsViewWithColumnStateDefinitions(assessmentSection, initialReadOnlyState); + + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Precondition + Assert.AreEqual(initialReadOnlyState, dataGridView.Rows[0].Cells[selectableHydraulicBoundaryLocationsColumnIndex].ReadOnly); + + // When + var testCalculationRowWithColumnStateDefinitions = ((TestCalculationRowWithColumnStateDefinitions) dataGridView.Rows[0].DataBoundItem); + dataGridView.CurrentCell = dataGridView.Rows[0].Cells[nameColumnIndex]; + dataGridView.BeginEdit(false); + testCalculationRowWithColumnStateDefinitions.SetReadOnlyState(!initialReadOnlyState); + testCalculationRowWithColumnStateDefinitions.Calculation.InputParameters.NotifyObservers(); + + // Then + Assert.AreEqual(!initialReadOnlyState, dataGridView.Rows[0].Cells[selectableHydraulicBoundaryLocationsColumnIndex].ReadOnly); + } + #endregion } } \ No newline at end of file