Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/CalculationsViewTest.cs =================================================================== diff -u -r6a10daf3f2da51ce10bf853294004c4f51d02e94 -rddfa3e264324958cb503ad2d09fad6e9d15bce19 --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/CalculationsViewTest.cs (.../CalculationsViewTest.cs) (revision 6a10daf3f2da51ce10bf853294004c4f51d02e94) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/CalculationsViewTest.cs (.../CalculationsViewTest.cs) (revision ddfa3e264324958cb503ad2d09fad6e9d15bce19) @@ -225,7 +225,7 @@ return calculationsView; } - private abstract class TestCalculationsViewBase : CalculationsView + private abstract class TestCalculationsViewBase : CalculationsView where TCalculationRow : CalculationRow { protected TestCalculationsViewBase(CalculationGroup calculationGroup, TestFailureMechanism failureMechanism, IAssessmentSection assessmentSection) @@ -268,7 +268,7 @@ private class TestCalculationsView : TestCalculationsViewBase { public TestCalculationsView(CalculationGroup calculationGroup, TestFailureMechanism failureMechanism, IAssessmentSection assessmentSection) - : base(calculationGroup, failureMechanism, assessmentSection) { } + : base(calculationGroup, failureMechanism, assessmentSection) {} public int HydraulicBoundaryLocationChangedCounter { get; private set; } @@ -812,46 +812,62 @@ private class TestCalculationRowWithColumnStateDefinitions : TestCalculationRow, IHasColumnStateDefinitions { - public TestCalculationRowWithColumnStateDefinitions(TestCalculation calculation, IObservablePropertyChangeHandler propertyChangeHandler) + public TestCalculationRowWithColumnStateDefinitions(TestCalculation calculation, + IObservablePropertyChangeHandler propertyChangeHandler, + bool initialReadOnlyState) : base(calculation, propertyChangeHandler) { ColumnStateDefinitions = new Dictionary { { nameColumnIndex, new DataGridViewColumnStateDefinition() + }, + { + selectableHydraulicBoundaryLocationsColumnIndex, new DataGridViewColumnStateDefinition() } }; - ColumnReadOnly = true; + SetReadOnlyState(initialReadOnlyState); } - public IDictionary ColumnStateDefinitions { get; } - - public bool ColumnReadOnly + public void SetReadOnlyState(bool readOnlyState) { - get => ColumnStateDefinitions[nameColumnIndex].ReadOnly; - set => ColumnStateHelper.SetColumnState(ColumnStateDefinitions[nameColumnIndex], value); + ColumnStateHelper.SetColumnState(ColumnStateDefinitions[nameColumnIndex], readOnlyState); + ColumnStateHelper.SetColumnState(ColumnStateDefinitions[selectableHydraulicBoundaryLocationsColumnIndex], readOnlyState); } + + public IDictionary ColumnStateDefinitions { get; } } private class TestCalculationsViewWithColumnStateDefinitions : TestCalculationsViewBase { - public TestCalculationsViewWithColumnStateDefinitions(CalculationGroup calculationGroup, TestFailureMechanism failureMechanism, IAssessmentSection assessmentSection) - : base(calculationGroup, failureMechanism, assessmentSection) { } + private readonly bool initialReadOnlyState; + public TestCalculationsViewWithColumnStateDefinitions(CalculationGroup calculationGroup, + TestFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + bool initialReadOnlyState) + : base(calculationGroup, failureMechanism, assessmentSection) + { + this.initialReadOnlyState = initialReadOnlyState; + } + protected override TestCalculationRowWithColumnStateDefinitions CreateRow(TestCalculation calculation) { - return new TestCalculationRowWithColumnStateDefinitions(calculation, new ObservablePropertyChangeHandler(calculation, calculation.InputParameters)); + return new TestCalculationRowWithColumnStateDefinitions(calculation, + new ObservablePropertyChangeHandler(calculation, calculation.InputParameters), + initialReadOnlyState); } } - private void ShowFullyConfiguredCalculationsViewWithColumnStateDefinitions(IAssessmentSection assessmentSection) + private void ShowFullyConfiguredCalculationsViewWithColumnStateDefinitions(IAssessmentSection assessmentSection, bool initialReadOnlyState) { ConfigureHydraulicBoundaryDatabase(assessmentSection); var calculationsView = new TestCalculationsViewWithColumnStateDefinitions(ConfigureCalculationGroup(assessmentSection), ConfigureFailureMechanism(), - assessmentSection); + assessmentSection, + initialReadOnlyState); testForm.Controls.Add(calculationsView); testForm.Show(); @@ -871,22 +887,26 @@ // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; Assert.AreEqual(false, dataGridView.Rows[0].Cells[nameColumnIndex].ReadOnly); + Assert.AreEqual(false, dataGridView.Rows[0].Cells[selectableHydraulicBoundaryLocationsColumnIndex].ReadOnly); } [Test] - public void GivenCalculationsViewWithColumnStateDefinitions_ThenColumnStatesAsExpected() + [TestCase(true)] + [TestCase(false)] + public void GivenCalculationsViewWithColumnStateDefinitions_ThenColumnStatesAsExpected(bool initialReadOnlyState) { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); mocks.ReplayAll(); // Call - ShowFullyConfiguredCalculationsViewWithColumnStateDefinitions(assessmentSection); + ShowFullyConfiguredCalculationsViewWithColumnStateDefinitions(assessmentSection, initialReadOnlyState); // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - Assert.AreEqual(true, dataGridView.Rows[0].Cells[nameColumnIndex].ReadOnly); + Assert.AreEqual(initialReadOnlyState, dataGridView.Rows[0].Cells[nameColumnIndex].ReadOnly); + Assert.AreEqual(initialReadOnlyState, dataGridView.Rows[0].Cells[selectableHydraulicBoundaryLocationsColumnIndex].ReadOnly); } #endregion