Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismResultViewTest.cs =================================================================== diff -u -r7713ffeaa9f54d0faaf54ec7d2570e775ec99093 -rc5505f73b4c053fbc8eb0a5e2f230e3daf3de940 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismResultViewTest.cs (.../ClosingStructuresFailureMechanismResultViewTest.cs) (revision 7713ffeaa9f54d0faaf54ec7d2570e775ec99093) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismResultViewTest.cs (.../ClosingStructuresFailureMechanismResultViewTest.cs) (revision c5505f73b4c053fbc8eb0a5e2f230e3daf3de940) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Collections; using System.Collections.Generic; using System.Windows.Forms; using Core.Common.Base.Data; @@ -368,13 +369,18 @@ } [Test] - public void GivenSectionResultWithoutCalculation_ThenLayerTwoAErrorTooltip() + [TestCase(AssessmentLayerOneState.NotAssessed)] + [TestCase(AssessmentLayerOneState.NeedsDetailedAssessment)] + public void GivenSectionResultWithoutCalculation_ThenLayerTwoAErrorTooltip(AssessmentLayerOneState assessmentLayerOneState) { // Given using (ClosingStructuresFailureMechanismResultView view = ShowFailureMechanismResultsView()) { FailureMechanismSection section = CreateSimpleFailureMechanismSection(); - var sectionResult = new ClosingStructuresFailureMechanismSectionResult(section); + var sectionResult = new ClosingStructuresFailureMechanismSectionResult(section) + { + AssessmentLayerOne = assessmentLayerOneState + }; view.Data = new[] { sectionResult @@ -395,7 +401,10 @@ } [Test] - public void GivenSectionResultAndCalculationNotCalculated_ThenLayerTwoAErrorTooltip() + [TestCase(AssessmentLayerOneState.NotAssessed)] + [TestCase(AssessmentLayerOneState.NeedsDetailedAssessment)] + public void GivenSectionResultAndCalculationNotCalculated_ThenLayerTwoAErrorTooltip( + AssessmentLayerOneState assessmentLayerOneState) { // Given using (ClosingStructuresFailureMechanismResultView view = ShowFailureMechanismResultsView()) @@ -404,7 +413,8 @@ FailureMechanismSection section = CreateSimpleFailureMechanismSection(); var sectionResult = new ClosingStructuresFailureMechanismSectionResult(section) { - Calculation = calculation + Calculation = calculation, + AssessmentLayerOne = assessmentLayerOneState }; view.Data = new[] @@ -427,7 +437,9 @@ } [Test] - public void GivenSectionResultAndFailedCalculation_ThenLayerTwoAErrorTooltip() + [TestCase(AssessmentLayerOneState.NotAssessed)] + [TestCase(AssessmentLayerOneState.NeedsDetailedAssessment)] + public void GivenSectionResultAndFailedCalculation_ThenLayerTwoAErrorTooltip(AssessmentLayerOneState assessmentLayerOneState) { // Given using (ClosingStructuresFailureMechanismResultView view = ShowFailureMechanismResultsView()) @@ -439,7 +451,8 @@ FailureMechanismSection section = CreateSimpleFailureMechanismSection(); var sectionResult = new ClosingStructuresFailureMechanismSectionResult(section) { - Calculation = calculation + Calculation = calculation, + AssessmentLayerOne = assessmentLayerOneState }; view.Data = new[] @@ -462,7 +475,9 @@ } [Test] - public void GivenSectionResultAndSuccessfulCalculation_ThenLayerTwoANoError() + [TestCase(AssessmentLayerOneState.NotAssessed)] + [TestCase(AssessmentLayerOneState.NeedsDetailedAssessment)] + public void GivenSectionResultAndSuccessfulCalculation_ThenLayerTwoANoError(AssessmentLayerOneState assessmentLayerOneState) { // Given using (ClosingStructuresFailureMechanismResultView view = ShowFailureMechanismResultsView()) @@ -475,7 +490,8 @@ FailureMechanismSection section = CreateSimpleFailureMechanismSection(); var sectionResult = new ClosingStructuresFailureMechanismSectionResult(section) { - Calculation = calculation + Calculation = calculation, + AssessmentLayerOne = assessmentLayerOneState }; view.Data = new[] @@ -498,8 +514,37 @@ } [Test] - public void GivenSectionResultAndSuccessfulCalculation_WhenChangingCalculationToFailed_ThenLayerTwoAHasError() + [TestCaseSource("AssessmentLayerOneStateIsSufficientVariousSections")] + public void GivenSectionResultAndAssessmentLayerOneStateSufficient_ThenLayerTwoANoError( + ClosingStructuresFailureMechanismSectionResult sectionResult, string expectedValue) { + using (ClosingStructuresFailureMechanismResultView view = ShowFailureMechanismResultsView()) + { + view.Data = new[] + { + sectionResult + }; + + var gridTester = new ControlTester("dataGridView"); + var dataGridView = (DataGridView) gridTester.TheObject; + + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[assessmentLayerTwoAIndex]; + + // When + var formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. + + // Then + Assert.AreEqual(expectedValue, formattedValue); + Assert.IsEmpty(dataGridViewCell.ErrorText); + } + } + + [Test] + [TestCase(AssessmentLayerOneState.NotAssessed)] + [TestCase(AssessmentLayerOneState.NeedsDetailedAssessment)] + public void GivenSectionResultAndSuccessfulCalculation_WhenChangingCalculationToFailed_ThenLayerTwoAHasError( + AssessmentLayerOneState assessmentLayerOneState) + { // Given using (ClosingStructuresFailureMechanismResultView view = ShowFailureMechanismResultsView()) { @@ -516,7 +561,8 @@ FailureMechanismSection section = CreateSimpleFailureMechanismSection(); var sectionResult = new ClosingStructuresFailureMechanismSectionResult(section) { - Calculation = successfulCalculation + Calculation = successfulCalculation, + AssessmentLayerOne = assessmentLayerOneState }; view.Data = new[] @@ -544,6 +590,38 @@ } } + private static IEnumerable AssessmentLayerOneStateIsSufficientVariousSections() + { + FailureMechanismSection section = CreateSimpleFailureMechanismSection(); + const double probability = 0.56789; + + yield return new TestCaseData(new ClosingStructuresFailureMechanismSectionResult(section) + { + AssessmentLayerOne = AssessmentLayerOneState.Sufficient + }, "-").SetName("SectionWithoutCalculation"); + yield return new TestCaseData(new ClosingStructuresFailureMechanismSectionResult(section) + { + AssessmentLayerOne = AssessmentLayerOneState.Sufficient, + Calculation = new StructuresCalculation() + }, "-").SetName("SectionWithCalculationNoOutput"); + yield return new TestCaseData(new ClosingStructuresFailureMechanismSectionResult(section) + { + AssessmentLayerOne = AssessmentLayerOneState.Sufficient, + Calculation = new StructuresCalculation() + { + Output = new ProbabilityAssessmentOutput(1.0, 1.0, double.NaN, 1.0, 1.0) + } + }, "-").SetName("SectionWithInvalidCalculationOutput"); + yield return new TestCaseData(new ClosingStructuresFailureMechanismSectionResult(section) + { + AssessmentLayerOne = AssessmentLayerOneState.Sufficient, + Calculation = new StructuresCalculation() + { + Output = new ProbabilityAssessmentOutput(1.0, 1.0, probability, 1.0, 1.0) + } + }, ProbabilityFormattingHelper.Format(probability)).SetName("SectionWithValidCalculationOutput"); + } + private static FailureMechanismSection CreateSimpleFailureMechanismSection() { var section = new FailureMechanismSection("A",