Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs =================================================================== diff -u -r10da55f5cb8bf1b8a8309e43f923072a29db254d -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs (.../FailureMechanismSectionResultColumnBuilder.cs) (revision 10da55f5cb8bf1b8a8309e43f923072a29db254d) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs (.../FailureMechanismSectionResultColumnBuilder.cs) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -199,7 +199,7 @@ throw new ArgumentNullException(nameof(dataPropertyName)); } - IEnumerable> dataSource = + IEnumerable> dataSource = CreateEnumDisplayWrappers(); dataGridViewControl.AddComboBoxColumn( @@ -229,7 +229,7 @@ throw new ArgumentNullException(nameof(dataPropertyName)); } - IEnumerable> dataSource = + IEnumerable> dataSource = CreateEnumDisplayWrappers(); dataGridViewControl.AddComboBoxColumn( @@ -364,6 +364,30 @@ Resources.FailureMechanismResultView_CombinedAssemblyCategoryGroup_DisplayName); } + /// + /// Adds a column to the showing the combined + /// assembly probability. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddCombinedAssemblyProbabilityColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) + { + if (dataGridViewControl == null) + { + throw new ArgumentNullException(nameof(dataGridViewControl)); + } + + if (dataPropertyName == null) + { + throw new ArgumentNullException(nameof(dataPropertyName)); + } + + dataGridViewControl.AddTextBoxColumn( + dataPropertyName, + Resources.FailureMechanismResultView_CombinedAssemblyProbability_DisplayName); + } + #endregion #region Override Assembly Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -r10da55f5cb8bf1b8a8309e43f923072a29db254d -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 10da55f5cb8bf1b8a8309e43f923072a29db254d) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -1379,6 +1379,17 @@ } /// + /// Looks up a localized string similar to Assemblageresultaat + ///gecombineerde + ///faalkansschatting. + /// + public static string FailureMechanismResultView_CombinedAssemblyProbability_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_CombinedAssemblyProbability_DisplayName", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Alle berekeningen voor dit vak moeten een geldige uitkomst hebben.. /// public static string FailureMechanismResultView_DataGridViewCellFormatting_All_calculations_must_have_valid_output { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -r10da55f5cb8bf1b8a8309e43f923072a29db254d -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision 10da55f5cb8bf1b8a8309e43f923072a29db254d) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -250,6 +250,11 @@ Assemblageresultaat gecombineerd + + Assemblageresultaat +gecombineerde +faalkansschatting + Overschrijf assemblageresultaat Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs =================================================================== diff -u -r10da55f5cb8bf1b8a8309e43f923072a29db254d -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs (.../FailureMechanismSectionResultColumnBuilderTest.cs) (revision 10da55f5cb8bf1b8a8309e43f923072a29db254d) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs (.../FailureMechanismSectionResultColumnBuilderTest.cs) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -690,6 +690,54 @@ } } + [Test] + public void AddCombinedAssemblyProbabilityColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddCombinedAssemblyProbabilityColumn(null, "property"); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddCombinedAssemblyProbabilityColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddCombinedAssemblyProbabilityColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddCombinedAssemblyProbabilityColumn_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 + FailureMechanismSectionResultColumnBuilder.AddCombinedAssemblyProbabilityColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewTextBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Assemblageresultaat\r\ngecombineerde\r\nfaalkansschatting", columnData.HeaderText); + } + } + #endregion #region Manual Assembly Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs =================================================================== diff -u -rb761c34a465fc6d203555b5a52839dd1681aad5a -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs (.../GrassCoverErosionInwardsFailureMechanismResultView.cs) (revision b761c34a465fc6d203555b5a52839dd1681aad5a) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs (.../GrassCoverErosionInwardsFailureMechanismResultView.cs) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -23,9 +23,9 @@ using System.Linq; using System.Windows.Forms; using Core.Common.Base; -using Core.Common.Util; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Forms.Builders; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.Views; using Ringtoets.Common.Primitives; @@ -40,7 +40,19 @@ public class GrassCoverErosionInwardsFailureMechanismResultView : FailureMechanismResultView { - private const int detailedAssessmentIndex = 2; + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int detailedAssessmentProbabilityIndex = 3; + private const int tailorMadeAssessmentResultIndex = 4; + private const int tailorMadeAssessmentProbabilityIndex = 5; + private const int simpleAssemblyCategoryGroupIndex = 6; + private const int detailedAssemblyCategoryGroupIndex = 7; + private const int tailorMadeAssemblyCategoryGroupIndex = 8; + private const int combinedAssemblyCategoryGroupIndex = 9; + private const int combinedAssemblyProbabilityIndex = 10; + private const int useManualAssemblyCategoryGroupIndex = 11; + private const int manualAssemblyProbabilityIndex = 12; + private readonly IAssessmentSection assessmentSection; private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationOutputObserver; @@ -62,7 +74,7 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - this.assessmentSection = assessmentSection; + this.assessmentSection = assessmentSection; // The concat is needed to observe the input of calculations in child groups. calculationInputObserver = new RecursiveObserver( @@ -106,31 +118,57 @@ protected override void AddDataGridColumns() { - DataGridViewControl.AddTextBoxColumn( - nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.Name), - RingtoetsCommonFormsResources.Section_DisplayName, - true); + FailureMechanismSectionResultColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.Name)); - EnumDisplayWrapper[] simpleAssessmentDataSource = - Enum.GetValues(typeof(SimpleAssessmentResultValidityOnlyType)) - .OfType() - .Select(sa => new EnumDisplayWrapper(sa)) - .ToArray(); + FailureMechanismSectionResultColumnBuilder.AddSimpleAssessmentResultValidityOnlyColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.SimpleAssessmentResult)); - DataGridViewControl.AddComboBoxColumn( - nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.SimpleAssessmentResult), - RingtoetsCommonFormsResources.FailureMechanismResultView_SimpleAssessmentResult_DisplayName, - simpleAssessmentDataSource, - nameof(EnumDisplayWrapper.Value), - nameof(EnumDisplayWrapper.DisplayName)); + FailureMechanismSectionResultColumnBuilder.AddDetailedAssessmentResultColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.DetailedAssessmentResult)); - DataGridViewControl.AddTextBoxColumn( - nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.DetailedAssessmentProbability), - RingtoetsCommonFormsResources.FailureMechanismResultView_DetailedAssessmentResult_DisplayName, - true); - DataGridViewControl.AddTextBoxColumn( - nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.TailorMadeAssessmentProbability), - RingtoetsCommonFormsResources.FailureMechanismResultView_TailorMadeAssessmentResult_DisplayName); + FailureMechanismSectionResultColumnBuilder.AddDetailedAssessmentProbabilityColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.DetailedAssessmentProbability)); + + FailureMechanismSectionResultColumnBuilder.AddTailorMadeAssessmentProbabilityCalculationResultColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultColumnBuilder.AddTailorMadeAssessmentProbabilityColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.TailorMadeAssessmentProbability)); + + FailureMechanismSectionResultColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultColumnBuilder.AddDetailedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.DetailedAssemblyCategoryGroup)); + + FailureMechanismSectionResultColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultColumnBuilder.AddCombinedAssemblyProbabilityColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.CombinedAssemblyProbability)); + + FailureMechanismSectionResultColumnBuilder.AddUseManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.UseManualAssemblyProbability)); + + FailureMechanismSectionResultColumnBuilder.AddManualAssemblyProbabilityColumn( + DataGridViewControl, + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.ManualAssemblyProbability)); } protected override void BindEvents() @@ -159,7 +197,7 @@ private void ShowAssessmentLayerErrors(object sender, DataGridViewCellFormattingEventArgs e) { - if (e.ColumnIndex != detailedAssessmentIndex) + if (e.ColumnIndex != detailedAssessmentProbabilityIndex) { return; } Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs =================================================================== diff -u -r70df02232e2470ca8edfa1181512e96c580d264a -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs) (revision 70df02232e2470ca8edfa1181512e96c580d264a) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -208,8 +208,26 @@ } /// - /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// Gets the combined assembly probability. /// + /// Thrown when the + /// could not be created. + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double CombinedAssemblyProbability + { + get + { + return GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleCombinedAssembly( + SectionResult, + failureMechanism, + assessmentSection).Probability; + } + } + + /// + /// Gets or sets the indicator whether the combined assembly probability + /// should be overwritten by . + /// public bool UseManualAssemblyProbability { get @@ -224,7 +242,7 @@ } /// - /// Gets or sets the manually selected assembly probability. + /// Gets or sets the manually entered assembly probability. /// /// Thrown when is /// not in the range [0,1]. Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismResultViewTest.cs =================================================================== diff -u -rb761c34a465fc6d203555b5a52839dd1681aad5a -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismResultViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismResultViewTest.cs) (revision b761c34a465fc6d203555b5a52839dd1681aad5a) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismResultViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismResultViewTest.cs) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -28,6 +28,7 @@ using NUnit.Extensions.Forms; using NUnit.Framework; using Rhino.Mocks; +using Ringtoets.AssemblyTool.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; @@ -44,9 +45,20 @@ public class GrassCoverErosionInwardsFailureMechanismResultViewTest { private const int nameColumnIndex = 0; - private const int simpleAssessmentIndex = 1; - private const int detailedAssessmentProbabilityIndex = 2; - private const int tailorMadeAssessmentProbabilityIndex = 3; + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int detailedAssessmentProbabilityIndex = 3; + private const int tailorMadeAssessmentResultIndex = 4; + private const int tailorMadeAssessmentProbabilityIndex = 5; + private const int simpleAssemblyCategoryGroupIndex = 6; + private const int detailedAssemblyCategoryGroupIndex = 7; + private const int tailorMadeAssemblyCategoryGroupIndex = 8; + private const int combinedAssemblyCategoryGroupIndex = 9; + private const int combinedAssemblyProbabilityIndex = 10; + private const int useManualAssemblyProbabilityIndex = 11; + private const int manualAssemblyProbabilityIndex = 12; + private const int columnCount = 13; + private Form testForm; [SetUp] @@ -107,16 +119,36 @@ // Then var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - Assert.AreEqual(4, dataGridView.ColumnCount); + Assert.AreEqual(13, dataGridView.ColumnCount); Assert.IsTrue(dataGridView.Columns[detailedAssessmentProbabilityIndex].ReadOnly); - Assert.IsInstanceOf(dataGridView.Columns[simpleAssessmentIndex]); + Assert.IsInstanceOf(dataGridView.Columns[nameColumnIndex]); + Assert.IsInstanceOf(dataGridView.Columns[simpleAssessmentResultIndex]); + Assert.IsInstanceOf(dataGridView.Columns[detailedAssessmentResultIndex]); Assert.IsInstanceOf(dataGridView.Columns[detailedAssessmentProbabilityIndex]); + Assert.IsInstanceOf(dataGridView.Columns[tailorMadeAssessmentResultIndex]); Assert.IsInstanceOf(dataGridView.Columns[tailorMadeAssessmentProbabilityIndex]); + Assert.IsInstanceOf(dataGridView.Columns[simpleAssemblyCategoryGroupIndex]); + Assert.IsInstanceOf(dataGridView.Columns[detailedAssemblyCategoryGroupIndex]); + Assert.IsInstanceOf(dataGridView.Columns[tailorMadeAssemblyCategoryGroupIndex]); + Assert.IsInstanceOf(dataGridView.Columns[combinedAssemblyCategoryGroupIndex]); + Assert.IsInstanceOf(dataGridView.Columns[combinedAssemblyProbabilityIndex]); + Assert.IsInstanceOf(dataGridView.Columns[useManualAssemblyProbabilityIndex]); + Assert.IsInstanceOf(dataGridView.Columns[manualAssemblyProbabilityIndex]); - Assert.AreEqual("Eenvoudige toets", dataGridView.Columns[simpleAssessmentIndex].HeaderText); - Assert.AreEqual("Gedetailleerde toets per vak", dataGridView.Columns[detailedAssessmentProbabilityIndex].HeaderText); - Assert.AreEqual("Toets op maat", dataGridView.Columns[tailorMadeAssessmentProbabilityIndex].HeaderText); + Assert.AreEqual("Vak", dataGridView.Columns[nameColumnIndex].HeaderText); + Assert.AreEqual("Eenvoudige toets", dataGridView.Columns[simpleAssessmentResultIndex].HeaderText); + Assert.AreEqual("Gedetailleerde toets per vak", dataGridView.Columns[detailedAssessmentResultIndex].HeaderText); + Assert.AreEqual("Gedetailleerde toets per vak\r\nfaalkans", dataGridView.Columns[detailedAssessmentProbabilityIndex].HeaderText); + Assert.AreEqual("Toets op maat", dataGridView.Columns[tailorMadeAssessmentResultIndex].HeaderText); + Assert.AreEqual("Toets op maat\r\nfaalkans", dataGridView.Columns[tailorMadeAssessmentProbabilityIndex].HeaderText); + Assert.AreEqual("Assemblageresultaat\r\neenvoudige toets", dataGridView.Columns[simpleAssemblyCategoryGroupIndex].HeaderText); + Assert.AreEqual("Assemblageresultaat\r\ngedetailleerde toets per vak", dataGridView.Columns[detailedAssemblyCategoryGroupIndex].HeaderText); + Assert.AreEqual("Assemblageresultaat\r\ntoets op maat", dataGridView.Columns[tailorMadeAssemblyCategoryGroupIndex].HeaderText); + Assert.AreEqual("Assemblageresultaat\r\ngecombineerd", dataGridView.Columns[combinedAssemblyCategoryGroupIndex].HeaderText); + Assert.AreEqual("Assemblageresultaat\r\ngecombineerde\r\nfaalkansschatting", dataGridView.Columns[combinedAssemblyProbabilityIndex].HeaderText); + Assert.AreEqual("Overschrijf\r\nassemblageresultaat", dataGridView.Columns[useManualAssemblyProbabilityIndex].HeaderText); + Assert.AreEqual("Assemblageresultaat\r\nhandmatig", dataGridView.Columns[manualAssemblyProbabilityIndex].HeaderText); Assert.AreEqual(DataGridViewAutoSizeColumnsMode.AllCells, dataGridView.AutoSizeColumnsMode); Assert.AreEqual(DataGridViewContentAlignment.MiddleCenter, dataGridView.ColumnHeadersDefaultCellStyle.Alignment); @@ -133,21 +165,23 @@ // Assert DataGridViewRowCollection rows = dataGridView.Rows; - Assert.AreEqual(2, rows.Count); + Assert.AreEqual(1, rows.Count); DataGridViewCellCollection cells = rows[0].Cells; - Assert.AreEqual(4, cells.Count); + Assert.AreEqual(columnCount, cells.Count); Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(SimpleAssessmentResultValidityOnlyType.None, cells[simpleAssessmentIndex].Value); + Assert.AreEqual(SimpleAssessmentResultValidityOnlyType.None, cells[simpleAssessmentResultIndex].Value); + Assert.AreEqual(DetailedAssessmentResultType.Probability, cells[detailedAssessmentResultIndex].Value); Assert.AreEqual("-", cells[detailedAssessmentProbabilityIndex].FormattedValue); + Assert.AreEqual(TailorMadeAssessmentProbabilityCalculationResultType.None, cells[tailorMadeAssessmentResultIndex].Value); Assert.AreEqual("-", cells[tailorMadeAssessmentProbabilityIndex].FormattedValue); - - cells = rows[1].Cells; - Assert.AreEqual(4, cells.Count); - Assert.AreEqual("Section 2", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(SimpleAssessmentResultValidityOnlyType.None, cells[simpleAssessmentIndex].Value); - Assert.AreEqual("-", cells[detailedAssessmentProbabilityIndex].FormattedValue); - Assert.AreEqual("-", cells[tailorMadeAssessmentProbabilityIndex].FormattedValue); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.None, cells[simpleAssemblyCategoryGroupIndex].Value); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.None, cells[detailedAssemblyCategoryGroupIndex].Value); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.None, cells[tailorMadeAssemblyCategoryGroupIndex].Value); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.None, cells[combinedAssemblyCategoryGroupIndex].Value); + Assert.AreEqual("-", cells[combinedAssemblyProbabilityIndex].FormattedValue); + Assert.AreEqual(false, cells[useManualAssemblyProbabilityIndex].Value); + Assert.AreEqual("-", cells[manualAssemblyProbabilityIndex].FormattedValue); } } @@ -165,17 +199,17 @@ var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; // Call - dataGridView.Rows[0].Cells[simpleAssessmentIndex].Value = simpleAssessmentResult; + dataGridView.Rows[0].Cells[simpleAssessmentResultIndex].Value = simpleAssessmentResult; // Assert DataGridViewRowCollection rows = dataGridView.Rows; DataGridViewCellCollection cells = rows[0].Cells; - Assert.AreEqual(4, cells.Count); + Assert.AreEqual(13, cells.Count); Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue); DataGridViewCell cellDetailedAssessment = cells[detailedAssessmentProbabilityIndex]; DataGridViewCell cellTailorMadeAssessment = cells[tailorMadeAssessmentProbabilityIndex]; - DataGridViewCell dataGridViewCell = cells[simpleAssessmentIndex]; + DataGridViewCell dataGridViewCell = cells[simpleAssessmentResultIndex]; Assert.AreEqual(simpleAssessmentResult, dataGridViewCell.Value); Assert.AreEqual("-", cellDetailedAssessment.FormattedValue); @@ -520,8 +554,7 @@ { var results = new ObservableList { - new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1")), - new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 2")) + new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1")) }; GrassCoverErosionInwardsFailureMechanismResultView failureMechanismResultView = ShowFailureMechanismResultsView(results); Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -r70df02232e2470ca8edfa1181512e96c580d264a -rbb5e6710b02c9c28009245953196a7088ef2e111 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs) (revision 70df02232e2470ca8edfa1181512e96c580d264a) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs) (revision bb5e6710b02c9c28009245953196a7088ef2e111) @@ -64,13 +64,21 @@ // Assert Assert.IsInstanceOf>(row); Assert.AreEqual(result.SimpleAssessmentResult, row.SimpleAssessmentResult); + Assert.AreEqual(result.DetailedAssessmentResult, row.DetailedAssessmentResult); Assert.AreEqual(result.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), row.DetailedAssessmentProbability); + Assert.AreEqual(row.TailorMadeAssessmentResult, result.TailorMadeAssessmentResult); Assert.AreEqual(row.TailorMadeAssessmentProbability, result.TailorMadeAssessmentProbability); + Assert.AreEqual(row.UseManualAssemblyProbability, result.UseManualAssemblyProbability); + Assert.AreEqual(row.ManualAssemblyProbability, result.ManualAssemblyProbability); TestHelper.AssertTypeConverter( nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.DetailedAssessmentProbability)); TestHelper.AssertTypeConverter( nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.TailorMadeAssessmentProbability)); + TestHelper.AssertTypeConverter( + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.CombinedAssemblyProbability)); + TestHelper.AssertTypeConverter( + nameof(GrassCoverErosionInwardsFailureMechanismSectionResultRow.ManualAssemblyProbability)); mocks.VerifyAll(); } @@ -720,6 +728,65 @@ } } + [Test] + public void CombinedAssemblyProbability_AssemblyRan_ReturnProbability() + { + // Setup + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); + var row = new GrassCoverErosionInwardsFailureMechanismSectionResultRow(result, failureMechanism, assessmentSection); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + double combinedAssemblyProbability = row.CombinedAssemblyProbability; + + // Assert + FailureMechanismSectionAssembly calculatorOutput = calculator.CombinedAssemblyOutput; + Assert.AreEqual(calculatorOutput.Probability, combinedAssemblyProbability); + mocks.VerifyAll(); + } + } + + [Test] + public void CombinedAssemblyProbability_AssemblyThrowsException_ThrowsAssemblyException() + { + // Setup + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); + var row = new GrassCoverErosionInwardsFailureMechanismSectionResultRow(result, failureMechanism, assessmentSection); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + calculator.ThrowExceptionOnCalculate = true; + + // Call + double combinedAssemblyProbability; + TestDelegate test = () => combinedAssemblyProbability = row.CombinedAssemblyProbability; + + // Assert + Assert.Throws(test); + mocks.VerifyAll(); + } + } + #endregion } } \ No newline at end of file