Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultTotalViewTest.cs =================================================================== diff -u -r253cfb5af9f670f70a40399030923f8a541bc2b0 -r1fd5ca497a36c66287f51d17dcbc08485f72016c --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultTotalViewTest.cs (.../AssemblyResultTotalViewTest.cs) (revision 253cfb5af9f670f70a40399030923f8a541bc2b0) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultTotalViewTest.cs (.../AssemblyResultTotalViewTest.cs) (revision 1fd5ca497a36c66287f51d17dcbc08485f72016c) @@ -77,6 +77,7 @@ private const string failureMechanismsWithProbabilityControlName = "failureMechanismsWithProbabilityAssemblyControl"; private const string failureMechanismsWithoutProbabilityControlName = "failureMechanismsWithoutProbabilityAssemblyControl"; private const string assemblyResultOutdatedWarning = "Toetsoordeel is verouderd. Druk op de \"Toetsoordeel verversen\" knop om opnieuw te berekenen."; + private const string assemblyResultManualWarning = "Toetsoordeel is (deels) gebaseerd op handmatig overschreven toetsoordelen."; private Form testForm; private static IEnumerable CellFormattingStates @@ -151,15 +152,21 @@ Assert.IsInstanceOf(tableLayoutPanel.GetControlFromPosition(1, 1)); Assert.IsInstanceOf(tableLayoutPanel.GetControlFromPosition(1, 2)); - var datagridViewControl = (DataGridViewControl) new ControlTester("dataGridViewControl").TheObject; - Assert.AreEqual(DockStyle.Fill, datagridViewControl.Dock); + var dataGridViewControl = (DataGridViewControl) new ControlTester("dataGridViewControl").TheObject; + Assert.AreEqual(DockStyle.Fill, dataGridViewControl.Dock); ErrorProvider warningProvider = GetWarningProvider(view); TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.warning.ToBitmap(), warningProvider.Icon.ToBitmap()); Assert.AreEqual(ErrorBlinkStyle.NeverBlink, warningProvider.BlinkStyle); - Assert.IsEmpty(warningProvider.GetError(view)); + Assert.IsEmpty(warningProvider.GetError(button)); Assert.AreEqual(4, warningProvider.GetIconPadding(button)); + ErrorProvider manualAssemblyWarningProvider = GetManualAssemblyWarningProvider(view); + TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.PencilWarning.ToBitmap(), manualAssemblyWarningProvider.Icon.ToBitmap()); + Assert.AreEqual(ErrorBlinkStyle.NeverBlink, manualAssemblyWarningProvider.BlinkStyle); + Assert.IsEmpty(manualAssemblyWarningProvider.GetError(button)); + Assert.AreEqual(4, manualAssemblyWarningProvider.GetIconPadding(button)); + Assert.IsInstanceOf(view); Assert.IsInstanceOf(view); Assert.IsNull(view.Data); @@ -543,6 +550,91 @@ } } + [Test] + [TestCase(true)] + [TestCase(false)] + public void GivenFormWithAssemblyResultTotalViewWithManualAssembly_ThenExpectedWarningSet(bool hasManualAssembly) + { + // Given + var assessmentSection = new AssessmentSection(new Random(21).NextEnumValue()); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + failureMechanism.SectionResults.Single().UseManualAssemblyProbability = hasManualAssembly; + + // When + using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester(); + Button button = buttonTester.Properties; + ErrorProvider manualAssemblyWarningProvider = GetManualAssemblyWarningProvider(view); + Assert.AreEqual(hasManualAssembly ? assemblyResultManualWarning : string.Empty, manualAssemblyWarningProvider.GetError(button)); + } + } + + [Test] + [TestCase(true)] + [TestCase(false)] + public void GivenFormWithAssemblyResultTotalViewWithManualAssembly_WhenAssessmentSectionNotifiesObservers_ThenWarningsSet( + bool hasManualAssembly) + { + // Given + var assessmentSection = new AssessmentSection(new Random(21).NextEnumValue()); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + failureMechanism.SectionResults.Single().UseManualAssemblyProbability = hasManualAssembly; + + using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection)) + { + // Precondition + ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester(); + Button button = buttonTester.Properties; + Assert.IsFalse(button.Enabled); + ErrorProvider warningProvider = GetWarningProvider(view); + Assert.IsEmpty(warningProvider.GetError(button)); + ErrorProvider manualAssemblyWarningProvider = GetManualAssemblyWarningProvider(view); + string expectedManualAssemblyWarning = hasManualAssembly ? assemblyResultManualWarning : string.Empty; + Assert.AreEqual(4, manualAssemblyWarningProvider.GetIconPadding(button)); + Assert.AreEqual(expectedManualAssemblyWarning, manualAssemblyWarningProvider.GetError(button)); + + // When + assessmentSection.NotifyObservers(); + + // Then + Assert.AreEqual(assemblyResultOutdatedWarning, warningProvider.GetError(button)); + Assert.AreEqual(expectedManualAssemblyWarning, manualAssemblyWarningProvider.GetError(button)); + Assert.AreEqual(24, manualAssemblyWarningProvider.GetIconPadding(button)); + } + } + + [Test] + public void GivenAssemblyResultTotalViewAssessmentSectionObserversNotified_WhenRefreshingAssemblyResults_ThenWarningAndPaddingSet() + { + // Given + using (new AssemblyToolCalculatorFactoryConfig()) + using (AssemblyResultTotalView view = ShowAssemblyResultTotalView()) + { + AssessmentSection assessmentSection = view.AssessmentSection; + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + failureMechanism.SectionResults.Single().UseManualAssemblyProbability = true; + assessmentSection.NotifyObservers(); + + // Precondition + ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester(); + Button button = buttonTester.Properties; + ErrorProvider manualAssemblyWarningProvider = GetManualAssemblyWarningProvider(view); + Assert.AreEqual(24, manualAssemblyWarningProvider.GetIconPadding(button)); + + // When + buttonTester.Click(); + + // Then + Assert.AreEqual(4, manualAssemblyWarningProvider.GetIconPadding(button)); + Assert.AreEqual(assemblyResultManualWarning, manualAssemblyWarningProvider.GetError(button)); + } + } + #region Use Manual Assembly [Test] @@ -1100,6 +1192,11 @@ return TypeUtils.GetField(resultControl, "warningProvider"); } + private static ErrorProvider GetManualAssemblyWarningProvider(AssemblyResultTotalView resultControl) + { + return TypeUtils.GetField(resultControl, "manualAssemblyWarningProvider"); + } + #endregion #region Asserts datagrid control