Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismAssemblyResultRowBaseTest.cs =================================================================== diff -u -r64c3fd447ec00532fcd711edb3c3144899e7e4ac -r75f05375500f06d02554a479eb98cb160a6fe734 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismAssemblyResultRowBaseTest.cs (.../FailureMechanismAssemblyResultRowBaseTest.cs) (revision 64c3fd447ec00532fcd711edb3c3144899e7e4ac) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismAssemblyResultRowBaseTest.cs (.../FailureMechanismAssemblyResultRowBaseTest.cs) (revision 75f05375500f06d02554a479eb98cb160a6fe734) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Drawing; using Core.Common.Controls.DataGrid; using Core.Common.TestUtil; using Core.Common.Util; @@ -91,33 +92,111 @@ } [Test] - public void GivenRow_WhenUpdateCalled_ThenColumnStateDefinitionErrorTextClearedAndTryGetDerivedDataExecuted() + public void GetCategoryGroupColumnStateDefinition_Always_ReturnsColumnStateDefinition() { - // Given + // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub(); mocks.ReplayAll(); var row = new TestFailureMechanismAssemblyResultRow(failureMechanism); + + // Call + DataGridViewColumnStateDefinition columnStateDefinition = row.GetCategoryGrouColumnStateDefinition(); + + // Assert + Assert.AreSame(row.ColumnStateDefinitions[categoryIndex], columnStateDefinition); + } + + [Test] + [TestCaseSource(typeof(AssemblyCategoryColorTestHelper), nameof(AssemblyCategoryColorTestHelper.FailureMechanismAssemblyCategoryGroupColorCases))] + public void GivenRow_WhenUpdating_ThenCategoryColumnStateDefinitionSet(FailureMechanismAssemblyCategoryGroup categoryGroup, + Color expectedBackgroundColor) + { + // Given + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + mocks.ReplayAll(); + + var row = new TestFailureMechanismAssemblyResultRow(failureMechanism, categoryGroup); row.ColumnStateDefinitions[categoryIndex].ErrorText = "An error text"; // Precondition - Assert.IsFalse(row.TryGetDerivedDataExecuted); + Assert.IsFalse(row.TryGetDerivedDataExecuted); // When row.Update(); // Then Assert.IsEmpty(row.ColumnStateDefinitions[categoryIndex].ErrorText); Assert.IsTrue(row.TryGetDerivedDataExecuted); + + IDictionary columnStateDefinitions = row.ColumnStateDefinitions; + + FailureMechanismSectionResultRowTestHelper.AssertColumnWithColorState(columnStateDefinitions[categoryIndex], + expectedBackgroundColor); } + [Test] + public void GivenRow_WhenUpdating_ThenTryDerivedDataExecuted() + { + // Given + var random = new Random(21); + + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + mocks.ReplayAll(); + + var row = new TestFailureMechanismAssemblyResultRow(failureMechanism, random.NextEnumValue()); + + // Precondition + Assert.IsFalse(row.TryGetDerivedDataExecuted); + + // When + row.Update(); + + // Then + Assert.IsTrue(row.TryGetDerivedDataExecuted); + } + + [Test] + public void GivenRowWithError_WhenUpdating_ClearsErrorText() + { + // Given + var random = new Random(21); + + var mocks = new MockRepository(); + var failureMechanism = mocks.Stub(); + mocks.ReplayAll(); + + var row = new TestFailureMechanismAssemblyResultRow(failureMechanism, random.NextEnumValue()); + row.ColumnStateDefinitions[categoryIndex].ErrorText = "An error text"; + + // When + row.Update(); + + // Then + Assert.IsEmpty(row.ColumnStateDefinitions[categoryIndex].ErrorText); + } + private class TestFailureMechanismAssemblyResultRow : FailureMechanismAssemblyResultRowBase { public bool TryGetDerivedDataExecuted { get; private set; } public TestFailureMechanismAssemblyResultRow(IFailureMechanism failureMechanism) : base(failureMechanism) {} + public TestFailureMechanismAssemblyResultRow(IFailureMechanism failureMechanism, + FailureMechanismAssemblyCategoryGroup categoryGroup) + : base(failureMechanism) + { + CategoryGroup = categoryGroup; + } + + public DataGridViewColumnStateDefinition GetCategoryGrouColumnStateDefinition() + { + return GetCategoryGroupColumnStateDefinition(); + } + protected override void TryGetDerivedData() { TryGetDerivedDataExecuted = true;