Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismResultView.cs =================================================================== diff -u -r4fe18530ce01d02e59d52bf8b334710236466abe -rde7086d6bba461177ee21a8111073dc533f1386f --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismResultView.cs (.../HeightStructuresFailureMechanismResultView.cs) (revision 4fe18530ce01d02e59d52bf8b334710236466abe) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismResultView.cs (.../HeightStructuresFailureMechanismResultView.cs) (revision de7086d6bba461177ee21a8111073dc533f1386f) @@ -41,7 +41,7 @@ public class HeightStructuresFailureMechanismResultView : FailureMechanismResultView { - private const int detailedAssessmentIndex = 2; + private const int detailedAssessmentIndex = 3; private readonly IAssessmentSection assessmentSection; private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationOutputObserver; @@ -116,10 +116,14 @@ DataGridViewControl, nameof(HeightStructuresFailureMechanismSectionResultRow.SimpleAssessmentResult)); - FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentProbabilityColumn( + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn( DataGridViewControl, - nameof(HeightStructuresFailureMechanismSectionResultRow.DetailedAssessmentProbability)); + nameof(HeightStructuresFailureMechanismSectionResultRow.DetailedAssessmentResult)); + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentProbabilityColumn( + DataGridViewControl, + nameof(HeightStructuresFailureMechanismSectionResultRow.DetailedAssessmentProbability)); + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentProbabilityColumn( DataGridViewControl, nameof(HeightStructuresFailureMechanismSectionResultRow.TailorMadeAssessmentProbability)); Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismResultViewTest.cs =================================================================== diff -u -r6973c50cba4def41918b738d36b7069f65caa16d -rde7086d6bba461177ee21a8111073dc533f1386f --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismResultViewTest.cs (.../HeightStructuresFailureMechanismResultViewTest.cs) (revision 6973c50cba4def41918b738d36b7069f65caa16d) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismResultViewTest.cs (.../HeightStructuresFailureMechanismResultViewTest.cs) (revision de7086d6bba461177ee21a8111073dc533f1386f) @@ -21,10 +21,8 @@ using System; using System.Collections; -using System.Globalization; using System.Windows.Forms; using Core.Common.Base; -using Core.Common.TestUtil; using NUnit.Extensions.Forms; using NUnit.Framework; using Rhino.Mocks; @@ -44,9 +42,10 @@ public class HeightStructuresFailureMechanismResultViewTest { private const int nameColumnIndex = 0; - private const int simpleAssessmentIndex = 1; - private const int detailedAssessmentIndex = 2; - private const int assessmentLayerThreeIndex = 3; + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int detailedAssessmentProbabilityIndex = 3; + private const int tailorMadeAssessmentProbabilityIndex = 4; private Form testForm; [SetUp] @@ -108,16 +107,20 @@ // Then var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - Assert.AreEqual(4, dataGridView.ColumnCount); - Assert.IsTrue(dataGridView.Columns[detailedAssessmentIndex].ReadOnly); + Assert.AreEqual(5, dataGridView.ColumnCount); + Assert.IsTrue(dataGridView.Columns[detailedAssessmentProbabilityIndex].ReadOnly); - Assert.IsInstanceOf(dataGridView.Columns[simpleAssessmentIndex]); - Assert.IsInstanceOf(dataGridView.Columns[detailedAssessmentIndex]); - Assert.IsInstanceOf(dataGridView.Columns[assessmentLayerThreeIndex]); + Assert.IsInstanceOf(dataGridView.Columns[nameColumnIndex]); + Assert.IsInstanceOf(dataGridView.Columns[simpleAssessmentResultIndex]); + Assert.IsInstanceOf(dataGridView.Columns[detailedAssessmentResultIndex]); + Assert.IsInstanceOf(dataGridView.Columns[detailedAssessmentProbabilityIndex]); + Assert.IsInstanceOf(dataGridView.Columns[tailorMadeAssessmentProbabilityIndex]); - Assert.AreEqual("Eenvoudige toets", dataGridView.Columns[simpleAssessmentIndex].HeaderText); - Assert.AreEqual("Gedetailleerde toets per vak\r\nfaalkans", dataGridView.Columns[detailedAssessmentIndex].HeaderText); - Assert.AreEqual("Toets op maat\r\nfaalkans", dataGridView.Columns[assessmentLayerThreeIndex].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\r\nfaalkans", dataGridView.Columns[tailorMadeAssessmentProbabilityIndex].HeaderText); Assert.AreEqual(DataGridViewAutoSizeColumnsMode.AllCells, dataGridView.AutoSizeColumnsMode); Assert.AreEqual(DataGridViewContentAlignment.MiddleCenter, dataGridView.ColumnHeadersDefaultCellStyle.Alignment); @@ -134,307 +137,21 @@ // 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(5, cells.Count); Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(SimpleAssessmentResultType.None, cells[simpleAssessmentIndex].Value); - Assert.AreEqual("-", cells[detailedAssessmentIndex].FormattedValue); - Assert.AreEqual("-", cells[assessmentLayerThreeIndex].FormattedValue); - - cells = rows[1].Cells; - Assert.AreEqual(4, cells.Count); - Assert.AreEqual("Section 2", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(SimpleAssessmentResultType.None, cells[simpleAssessmentIndex].Value); - Assert.AreEqual("-", cells[detailedAssessmentIndex].FormattedValue); - Assert.AreEqual("-", cells[assessmentLayerThreeIndex].FormattedValue); + Assert.AreEqual(SimpleAssessmentResultType.None, cells[simpleAssessmentResultIndex].Value); + Assert.AreEqual(DetailedAssessmentResultType.Probability, cells[detailedAssessmentResultIndex].Value); + Assert.AreEqual("-", cells[detailedAssessmentProbabilityIndex].FormattedValue); + Assert.AreEqual("-", cells[tailorMadeAssessmentProbabilityIndex].FormattedValue); } } [Test] [TestCase(SimpleAssessmentResultType.None)] [TestCase(SimpleAssessmentResultType.AssessFurther)] - [TestCase(SimpleAssessmentResultType.NotApplicable)] - [TestCase(SimpleAssessmentResultType.ProbabilityNegligible)] - public void FailureMechanismResultsView_ChangeAssessmentLayerOneState_DataGridViewCorrectlySyncedAndStylingSet( - SimpleAssessmentResultType simpleAssessmentResult) - { - // Setup - using (CreateConfiguredFailureMechanismResultsView()) - { - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - - // Call - dataGridView.Rows[0].Cells[simpleAssessmentIndex].Value = simpleAssessmentResult; - - // Assert - DataGridViewRowCollection rows = dataGridView.Rows; - - DataGridViewCellCollection cells = rows[0].Cells; - Assert.AreEqual(4, cells.Count); - Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue); - DataGridViewCell detailedAssessmentCell = cells[detailedAssessmentIndex]; - DataGridViewCell cellAssessmentLayerThree = cells[assessmentLayerThreeIndex]; - DataGridViewCell dataGridViewCell = cells[simpleAssessmentIndex]; - - Assert.AreEqual(simpleAssessmentResult, cells[simpleAssessmentIndex].Value); - Assert.AreEqual("-", detailedAssessmentCell.FormattedValue); - Assert.AreEqual("-", cellAssessmentLayerThree.FormattedValue); - Assert.IsEmpty(dataGridViewCell.ErrorText); - - if (simpleAssessmentResult == SimpleAssessmentResultType.NotApplicable - || simpleAssessmentResult == SimpleAssessmentResultType.ProbabilityNegligible) - { - DataGridViewTestHelper.AssertCellIsDisabled(detailedAssessmentCell); - DataGridViewTestHelper.AssertCellIsDisabled(cellAssessmentLayerThree); - - Assert.IsTrue(cellAssessmentLayerThree.ReadOnly); - } - else - { - DataGridViewTestHelper.AssertCellIsEnabled(detailedAssessmentCell, true); - DataGridViewTestHelper.AssertCellIsEnabled(cellAssessmentLayerThree); - - Assert.IsFalse(cellAssessmentLayerThree.ReadOnly); - } - } - } - - [Test] - public void FailureMechanismResultView_WithHeightStructuresFailureMechanismSectionResultAssigned_SectionsAddedAsRows() - { - // Setup - var random = new Random(21); - var result1 = new HeightStructuresFailureMechanismSectionResult( - FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1")) - { - SimpleAssessmentResult = SimpleAssessmentResultType.ProbabilityNegligible, - TailorMadeAssessmentProbability = random.NextRoundedDouble() - }; - var result2 = new HeightStructuresFailureMechanismSectionResult( - FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 2")) - { - SimpleAssessmentResult = SimpleAssessmentResultType.NotApplicable, - TailorMadeAssessmentProbability = random.NextRoundedDouble() - }; - var result3 = new HeightStructuresFailureMechanismSectionResult( - FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 3")) - { - SimpleAssessmentResult = SimpleAssessmentResultType.None, - TailorMadeAssessmentProbability = random.NextRoundedDouble() - }; - var result4 = new HeightStructuresFailureMechanismSectionResult( - FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 4")) - { - SimpleAssessmentResult = SimpleAssessmentResultType.AssessFurther, - TailorMadeAssessmentProbability = random.NextRoundedDouble() - }; - - // Call - using (ShowFailureMechanismResultsView(new ObservableList - { - result1, - result2, - result3, - result4 - })) - { - // Assert - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - DataGridViewRowCollection rows = dataGridView.Rows; - Assert.AreEqual(4, rows.Count); - - DataGridViewCellCollection cells = rows[0].Cells; - Assert.AreEqual(4, cells.Count); - Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(result1.SimpleAssessmentResult, cells[simpleAssessmentIndex].Value); - - Assert.AreEqual("-", cells[detailedAssessmentIndex].FormattedValue); - Assert.AreEqual(ProbabilityFormattingHelper.Format(result1.TailorMadeAssessmentProbability), - cells[assessmentLayerThreeIndex].FormattedValue); - - DataGridViewTestHelper.AssertCellIsDisabled(cells[detailedAssessmentIndex]); - DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerThreeIndex]); - - cells = rows[1].Cells; - Assert.AreEqual(4, cells.Count); - Assert.AreEqual("Section 2", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(result2.SimpleAssessmentResult, cells[simpleAssessmentIndex].Value); - - Assert.AreEqual("-", cells[detailedAssessmentIndex].FormattedValue); - Assert.AreEqual(ProbabilityFormattingHelper.Format(result1.TailorMadeAssessmentProbability), - cells[assessmentLayerThreeIndex].FormattedValue); - - DataGridViewTestHelper.AssertCellIsDisabled(cells[detailedAssessmentIndex]); - DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerThreeIndex]); - - cells = rows[2].Cells; - Assert.AreEqual(4, cells.Count); - Assert.AreEqual("Section 3", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(result3.SimpleAssessmentResult, cells[simpleAssessmentIndex].Value); - Assert.AreEqual("-", cells[detailedAssessmentIndex].FormattedValue); - Assert.AreEqual(ProbabilityFormattingHelper.Format(result3.TailorMadeAssessmentProbability), - cells[assessmentLayerThreeIndex].FormattedValue); - - DataGridViewTestHelper.AssertCellIsEnabled(cells[detailedAssessmentIndex], true); - DataGridViewTestHelper.AssertCellIsEnabled(cells[assessmentLayerThreeIndex]); - - cells = rows[3].Cells; - Assert.AreEqual(4, cells.Count); - Assert.AreEqual("Section 4", cells[nameColumnIndex].FormattedValue); - Assert.AreEqual(result4.SimpleAssessmentResult, cells[simpleAssessmentIndex].Value); - Assert.AreEqual("-", cells[detailedAssessmentIndex].FormattedValue); - Assert.AreEqual(ProbabilityFormattingHelper.Format(result4.TailorMadeAssessmentProbability), - cells[assessmentLayerThreeIndex].FormattedValue); - - DataGridViewTestHelper.AssertCellIsEnabled(cells[detailedAssessmentIndex], true); - DataGridViewTestHelper.AssertCellIsEnabled(cells[assessmentLayerThreeIndex]); - } - } - - [Test] - [TestCase(SimpleAssessmentResultType.None)] - [TestCase(SimpleAssessmentResultType.AssessFurther)] - public void GivenFormWithFailureMechanismResultView_WhenSectionBecomesNotApplicableAndListenersNotified_ThenRowsForSectionDisabled( - SimpleAssessmentResultType simpleAssessmentResult) - { - // Given - var random = new Random(21); - var result = new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - SimpleAssessmentResult = simpleAssessmentResult, - TailorMadeAssessmentProbability = random.NextRoundedDouble() - }; - - using (ShowFailureMechanismResultsView(new ObservableList - { - result - })) - { - // When - result.SimpleAssessmentResult = SimpleAssessmentResultType.NotApplicable; - result.NotifyObservers(); - - // Then - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - DataGridViewRowCollection rows = dataGridView.Rows; - Assert.AreEqual(1, rows.Count); - - DataGridViewCellCollection cells = rows[0].Cells; - Assert.AreEqual(4, cells.Count); - - DataGridViewTestHelper.AssertCellIsDisabled(cells[detailedAssessmentIndex]); - DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerThreeIndex]); - } - } - - [Test] - [TestCase(SimpleAssessmentResultType.None, TestName = "FormWithFailureMechanismResultView_WhenSectionBecomesProbabilityNegligibleAndListenersNotified_RowsForSectionDisabled(None)")] - [TestCase(SimpleAssessmentResultType.AssessFurther, TestName = "FormWithFailureMechanismResultView_WhenSectionBecomesProbabilityNegligibleAndListenersNotified_RowsForSectionDisabled(AssessFurther)")] - public void GivenFormWithFailureMechanismResultView_WhenSectionBecomesProbabilityNegligibleAndListenersNotified_ThenRowsForSectionDisabled( - SimpleAssessmentResultType simpleAssessmentResult) - { - // Given - var random = new Random(21); - var result = new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - SimpleAssessmentResult = simpleAssessmentResult, - TailorMadeAssessmentProbability = random.NextRoundedDouble() - }; - - using (ShowFailureMechanismResultsView(new ObservableList - { - result - })) - { - // When - result.SimpleAssessmentResult = SimpleAssessmentResultType.ProbabilityNegligible; - result.NotifyObservers(); - - // Then - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - DataGridViewRowCollection rows = dataGridView.Rows; - Assert.AreEqual(1, rows.Count); - - DataGridViewCellCollection cells = rows[0].Cells; - Assert.AreEqual(4, cells.Count); - - DataGridViewTestHelper.AssertCellIsDisabled(cells[detailedAssessmentIndex]); - DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerThreeIndex]); - } - } - - [Test] - [TestCase("test", assessmentLayerThreeIndex)] - [TestCase(";/[].,~!@#$%^&*()_-+={}|?", assessmentLayerThreeIndex)] - public void FailureMechanismResultView_EditValueInvalid_ShowsErrorTooltip(string newValue, int cellIndex) - { - // Setup - using (CreateConfiguredFailureMechanismResultsView()) - { - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - - // Call - dataGridView.Rows[0].Cells[cellIndex].Value = newValue; - - // Assert - Assert.AreEqual("De waarde kon niet geïnterpreteerd worden als een kans.", dataGridView.Rows[0].ErrorText); - } - } - - [Test] - [SetCulture("nl-NL")] - [TestCase(1.01)] - [TestCase(-0.01)] - [TestCase(5)] - [TestCase(-10)] - public void FailureMechanismResultView_EditValueAssessmentLayerThreeInvalid_ShowErrorToolTip(double newValue) - { - // Setup - using (CreateConfiguredFailureMechanismResultsView()) - { - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - - // Call - dataGridView.Rows[0].Cells[assessmentLayerThreeIndex].Value = newValue.ToString(CultureInfo.CurrentCulture); - - // Assert - Assert.AreEqual("De waarde voor de faalkans moet in het bereik [0,0, 1,0] liggen.", dataGridView.Rows[0].ErrorText); - } - } - - [Test] - [SetCulture("nl-NL")] - [TestCase(1)] - [TestCase(0)] - [TestCase(0.5)] - [TestCase(1e-6)] - [TestCase(double.NaN)] - public void FailureMechanismResultView_EditValueAssessmentLayerThreeValid_DoNotShowErrorToolTipAndEditValue(double newValue) - { - // Setup - var result = new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - - using (ShowFailureMechanismResultsView(new ObservableList - { - result - })) - { - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - - // Call - dataGridView.Rows[0].Cells[assessmentLayerThreeIndex].Value = newValue.ToString(CultureInfo.CurrentCulture); - - // Assert - Assert.IsEmpty(dataGridView.Rows[0].ErrorText); - Assert.AreEqual(newValue, result.TailorMadeAssessmentProbability); - } - } - - [Test] - [TestCase(SimpleAssessmentResultType.None)] - [TestCase(SimpleAssessmentResultType.AssessFurther)] public void GivenSectionResultWithoutCalculation_ThenDetailedAssessmentErrorTooltip(SimpleAssessmentResultType simpleAssessmentResult) { // Given @@ -451,7 +168,7 @@ var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; - DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentIndex]; + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentProbabilityIndex]; // When object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. @@ -483,7 +200,7 @@ var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; - DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentIndex]; + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentProbabilityIndex]; // When object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. @@ -520,7 +237,7 @@ var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; - DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentIndex]; + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentProbabilityIndex]; // When object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. @@ -555,7 +272,7 @@ var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; - DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentIndex]; + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentProbabilityIndex]; // When object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. @@ -581,7 +298,7 @@ var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; - DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentIndex]; + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentProbabilityIndex]; // When object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. @@ -616,7 +333,7 @@ var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; - DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentIndex]; + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[detailedAssessmentProbabilityIndex]; // Precondition object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. @@ -697,8 +414,7 @@ { var results = new ObservableList { - new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1")), - new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 2")) + new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1")) }; HeightStructuresFailureMechanismResultView failureMechanismResultView = ShowFailureMechanismResultsView(results);