Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs
===================================================================
diff -u
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs (revision 0)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs (revision 71eb769a22906ddc3e6f43360585d092eef32c8f)
@@ -0,0 +1,69 @@
+// Copyright (C) Stichting Deltares 2017. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using Core.Common.Controls.DataGrid;
+using Core.Common.Util;
+using Ringtoets.Common.Forms.Properties;
+using Ringtoets.Common.Primitives;
+
+namespace Ringtoets.Common.Forms.Builders
+{
+ ///
+ /// Builder class for adding various columns to a .
+ ///
+ public static class FailureMechanismSectionResultColumnBuilder
+ {
+ ///
+ /// Adds a column to the showing a
+ /// .
+ ///
+ /// The to add the column to.
+ /// The data property name of the column.
+ /// Thrown when any parameter is null.
+ public static void AddSimpleAssessmentResultColumn(DataGridViewControl dataGridViewControl, string dataPropertyName)
+ {
+ if (dataGridViewControl == null)
+ {
+ throw new ArgumentNullException(nameof(dataGridViewControl));
+ }
+
+ if (dataPropertyName == null)
+ {
+ throw new ArgumentNullException(nameof(dataPropertyName));
+ }
+
+ EnumDisplayWrapper[] simpleAssessmentDataSource =
+ Enum.GetValues(typeof(SimpleAssessmentResultType))
+ .OfType()
+ .Select(sa => new EnumDisplayWrapper(sa))
+ .ToArray();
+
+ dataGridViewControl.AddComboBoxColumn(
+ dataPropertyName,
+ Resources.FailureMechanismResultView_SimpleAssessmentResult_DisplayName,
+ simpleAssessmentDataSource,
+ nameof(EnumDisplayWrapper.Value),
+ nameof(EnumDisplayWrapper.DisplayName));
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj
===================================================================
diff -u -rd7696913d8f9239cb80eb2c3bac6cc0ccf23d479 -r71eb769a22906ddc3e6f43360585d092eef32c8f
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision d7696913d8f9239cb80eb2c3bac6cc0ccf23d479)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 71eb769a22906ddc3e6f43360585d092eef32c8f)
@@ -20,6 +20,7 @@
+
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs (revision 71eb769a22906ddc3e6f43360585d092eef32c8f)
@@ -0,0 +1,112 @@
+// Copyright (C) Stichting Deltares 2017. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Controls.DataGrid;
+using Core.Common.Util;
+using NUnit.Extensions.Forms;
+using NUnit.Framework;
+using Ringtoets.Common.Data.TestUtil;
+using Ringtoets.Common.Forms.Builders;
+using Ringtoets.Common.Forms.Test.Views;
+using Ringtoets.Common.Primitives;
+
+namespace Ringtoets.Common.Forms.Test.Builders
+{
+ [TestFixture]
+ public class FailureMechanismSectionResultColumnBuilderTest
+ {
+ [Test]
+ public void AddSimpleAssessmentResultColumn_DataGridViewControlNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddSimpleAssessmentResultColumn(null, "property");
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("dataGridViewControl", exception.ParamName);
+ }
+
+ [Test]
+ public void AddSimpleAssessmentResultColumn_DataPropertyNameNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddSimpleAssessmentResultColumn(new DataGridViewControl(), null);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("dataPropertyName", exception.ParamName);
+ }
+
+ [Test]
+ public void AddSimpleAssessmentResultColumn_WithParameters_AddsColumnToDataGridViewControl()
+ {
+ // Setup
+ const string dataPropertyName = "test property";
+
+ using (var form = new Form())
+ using (var control = new DataGridViewControl())
+ {
+ form.Controls.Add(control);
+ form.Show();
+ var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
+
+ control.SetDataSource(new[]
+ {
+ new TestFailureMechanismSectionResultRow(FailureMechanismSectionResultTestFactory.CreateFailureMechanismSectionResult())
+ });
+
+ // Precondition
+ Assert.AreEqual(0, dataGridView.ColumnCount);
+
+ // Call
+ FailureMechanismSectionResultColumnBuilder.AddSimpleAssessmentResultColumn(control, dataPropertyName);
+
+ // Assert
+ Assert.AreEqual(1, dataGridView.ColumnCount);
+
+ var columnData = (DataGridViewComboBoxColumn) dataGridView.Columns[0];
+
+ Assert.AreEqual(dataPropertyName, columnData.DataPropertyName);
+ Assert.AreEqual("Eenvoudige toets", columnData.HeaderText);
+ Assert.AreEqual("Value", columnData.ValueMember);
+ Assert.AreEqual("DisplayName", columnData.DisplayMember);
+
+ EnumDisplayWrapper[] expectedDataSource = Enum.GetValues(typeof(SimpleAssessmentResultType))
+ .OfType()
+ .Select(sa => new EnumDisplayWrapper(sa))
+ .ToArray();
+ var actualDataSource = (EnumDisplayWrapper[]) columnData.DataSource;
+
+ Assert.AreEqual(expectedDataSource.Length, actualDataSource.Length);
+ for (var i = 0; i < actualDataSource.Length; i++)
+ {
+ EnumDisplayWrapper expectedWrapper = expectedDataSource[i];
+ EnumDisplayWrapper actualWrapper = actualDataSource[i];
+ Assert.AreEqual(expectedWrapper.Value, actualWrapper.Value);
+ Assert.AreEqual(expectedWrapper.DisplayName, actualWrapper.DisplayName);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj
===================================================================
diff -u -rd7696913d8f9239cb80eb2c3bac6cc0ccf23d479 -r71eb769a22906ddc3e6f43360585d092eef32c8f
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision d7696913d8f9239cb80eb2c3bac6cc0ccf23d479)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision 71eb769a22906ddc3e6f43360585d092eef32c8f)
@@ -44,6 +44,7 @@
+