Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultViewColumnBuilder.cs =================================================================== diff -u -r8151d2a2528c3a943ae4cd9db3df150470ce3697 -r45ded3f4ae136090fa2bcf21999fdf066b80e650 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultViewColumnBuilder.cs (.../FailureMechanismSectionResultViewColumnBuilder.cs) (revision 8151d2a2528c3a943ae4cd9db3df150470ce3697) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultViewColumnBuilder.cs (.../FailureMechanismSectionResultViewColumnBuilder.cs) (revision 45ded3f4ae136090fa2bcf21999fdf066b80e650) @@ -214,6 +214,18 @@ } /// + /// Adds a column to the showing the detailed assessment result type. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddDetailedAssessmentResultColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) + { + AddDetailedAssessmentResultColumn(dataGridViewControl, dataPropertyName, + Resources.FailureMechanismResultView_DetailedAssessmentResult_DisplayName); + } + + /// /// Adds a column to the showing the detailed assessment result type /// for the factorized signaling norm category (IIv - IIIv). /// @@ -223,7 +235,7 @@ public static void AddDetailedAssessmentResultForFactorizedSignalingNormColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) { AddDetailedAssessmentResultColumn(dataGridViewControl, dataPropertyName, - Resources.FailureMechanismResultView_DetailedAssessmentResultForFactorizedSignalingNorm_DisplayName); + Resources.FailureMechanismResultView_DetailedAssessmentResultForFactorizedSignalingNorm_DisplayName); } /// @@ -236,9 +248,9 @@ public static void AddDetailedAssessmentResultForSignalingNormColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) { AddDetailedAssessmentResultColumn(dataGridViewControl, dataPropertyName, - Resources.FailureMechanismResultView_DetailedAssessmentResultForSignalingNorm_DisplayName); + Resources.FailureMechanismResultView_DetailedAssessmentResultForSignalingNorm_DisplayName); } - + /// /// Adds a column to the showing the detailed assessment result type /// for the failure mechanism specific lower limit norm category (IIIv - IVv). @@ -249,7 +261,7 @@ public static void AddDetailedAssessmentResultForMechanismSpecificLowerLimitNormColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) { AddDetailedAssessmentResultColumn(dataGridViewControl, dataPropertyName, - Resources.FailureMechanismResultView_DetailedAssessmentResultForMechanismSpecificLowerLimitNorm_DisplayName); + Resources.FailureMechanismResultView_DetailedAssessmentResultForMechanismSpecificLowerLimitNorm_DisplayName); } /// @@ -364,6 +376,36 @@ /// /// Adds a column to the showing the tailor made + /// assessment result. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddTailorMadeAssessmentResultColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) + { + if (dataGridViewControl == null) + { + throw new ArgumentNullException(nameof(dataGridViewControl)); + } + + if (dataPropertyName == null) + { + throw new ArgumentNullException(nameof(dataPropertyName)); + } + + IEnumerable> dataSource = + CreateEnumDisplayWrappers(); + + dataGridViewControl.AddComboBoxColumn( + dataPropertyName, + Resources.FailureMechanismResultView_TailorMadeAssessmentResult_DisplayName, + dataSource, + nameof(EnumDisplayWrapper.Value), + nameof(EnumDisplayWrapper.DisplayName)); + } + + /// + /// Adds a column to the showing the tailor made /// category group. /// /// The to add the column to. Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultViewColumnBuilderTest.cs =================================================================== diff -u -r2b1f4e709b0c3de92691566d9eb6cc202dbc0f07 -r45ded3f4ae136090fa2bcf21999fdf066b80e650 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultViewColumnBuilderTest.cs (.../FailureMechanismSectionResultViewColumnBuilderTest.cs) (revision 2b1f4e709b0c3de92691566d9eb6cc202dbc0f07) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultViewColumnBuilderTest.cs (.../FailureMechanismSectionResultViewColumnBuilderTest.cs) (revision 45ded3f4ae136090fa2bcf21999fdf066b80e650) @@ -331,6 +331,54 @@ } [Test] + public void AddDetailedAssessmentResultColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn(null, "property"); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddDetailedAssessmentResultColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddDetailedAssessmentResultColumn_WithParameters_AddsColumnToDataGridViewControl() + { + // Setup + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Precondition + Assert.AreEqual(0, dataGridView.ColumnCount); + + // Call + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewComboBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Gedetailleerde toets per vak", columnData.HeaderText); + } + } + + [Test] public void AddDetailedAssessmentResultForFactorizedSignalingNormColumn_DataGridViewControlNull_ThrowsArgumentNullException() { // Call @@ -765,7 +813,7 @@ { form.Controls.Add(control); form.Show(); - var dataGridView = (DataGridView)new ControlTester("dataGridView").TheObject; + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; // Precondition Assert.AreEqual(0, dataGridView.ColumnCount); @@ -776,18 +824,71 @@ // Assert Assert.AreEqual(1, dataGridView.ColumnCount); - var columnData = (DataGridViewComboBoxColumn)dataGridView.Columns[0]; + var columnData = (DataGridViewComboBoxColumn) dataGridView.Columns[0]; Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); Assert.AreEqual("Toets op maat", columnData.HeaderText); Assert.AreEqual("Value", columnData.ValueMember); Assert.AreEqual("DisplayName", columnData.DisplayMember); IEnumerable> expectedDataSource = CreateExpectedEnumDisplayWrappers(); - AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[])columnData.DataSource); + AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[]) columnData.DataSource); } } + [Test] + public void AddTailorMadeAssessmentResultColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn(null, "property"); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddTailorMadeAssessmentResultColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddTailorMadeAssessmentResultColumn_WithParameters_AddsColumnToDataGridViewControl() + { + // Setup + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Precondition + Assert.AreEqual(0, dataGridView.ColumnCount); + + // Call + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewComboBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Toets op maat", columnData.HeaderText); + Assert.AreEqual("Value", columnData.ValueMember); + Assert.AreEqual("DisplayName", columnData.DisplayMember); + + IEnumerable> expectedDataSource = CreateExpectedEnumDisplayWrappers(); + AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[]) columnData.DataSource); + } + } + #endregion #region Assessment Assembly