Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MacroStabilityOutwardsSectionResultRow.cs
===================================================================
diff -u -r35a47ac05a73373b7ca8e028ce7ae8ac1d0ef6c0 -rb5185d21d06eaa578010cf83a0087c4f9320025c
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MacroStabilityOutwardsSectionResultRow.cs (.../MacroStabilityOutwardsSectionResultRow.cs) (revision 35a47ac05a73373b7ca8e028ce7ae8ac1d0ef6c0)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MacroStabilityOutwardsSectionResultRow.cs (.../MacroStabilityOutwardsSectionResultRow.cs) (revision b5185d21d06eaa578010cf83a0087c4f9320025c)
@@ -272,6 +272,8 @@
///
/// Gets or sets the manually selected assembly category group.
///
+ /// Thrown when
+ /// is a valid value, but unsupported.
public SelectableFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup
{
get
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MicrostabilitySectionResultRow.cs
===================================================================
diff -u -r4503f687155622bb1b19155d27f8e3f9a5842fb0 -rb5185d21d06eaa578010cf83a0087c4f9320025c
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MicrostabilitySectionResultRow.cs (.../MicrostabilitySectionResultRow.cs) (revision 4503f687155622bb1b19155d27f8e3f9a5842fb0)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MicrostabilitySectionResultRow.cs (.../MicrostabilitySectionResultRow.cs) (revision b5185d21d06eaa578010cf83a0087c4f9320025c)
@@ -20,8 +20,14 @@
// All rights reserved.
using System;
+using Core.Common.Controls.DataGrid;
+using Ringtoets.AssemblyTool.Data;
+using Ringtoets.AssemblyTool.Forms;
+using Ringtoets.Common.Data.Exceptions;
+using Ringtoets.Common.Forms.Helpers;
using Ringtoets.Common.Forms.Views;
using Ringtoets.Common.Primitives;
+using Ringtoets.Integration.Data.StandAlone.AssemblyFactories;
using Ringtoets.Integration.Data.StandAlone.SectionResults;
namespace Ringtoets.Integration.Forms.Views.SectionResultRows
@@ -32,17 +38,58 @@
///
public class MicrostabilitySectionResultRow : FailureMechanismSectionResultRow
{
+ private readonly int simpleAssessmentResultIndex;
+ private readonly int detailedAssessmentResultIndex;
+ private readonly int tailorMadeAssessmentResultIndex;
+ private readonly int simpleAssemblyCategoryGroupIndex;
+ private readonly int detailedAssemblyCategoryGroupIndex;
+ private readonly int tailorMadeAssemblyCategoryGroupIndex;
+ private readonly int combinedAssemblyCategoryGroupIndex;
+ private readonly int manualAssemblyCategoryGroupIndex;
+
+ private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup;
+ private FailureMechanismSectionAssemblyCategoryGroup detailedAssemblyCategoryGroup;
+ private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup;
+ private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup;
+
///
/// Creates a new instance of .
///
/// The to wrap
/// so that it can be displayed as a row.
- /// Thrown when is null.
- public MicrostabilitySectionResultRow(MicrostabilityFailureMechanismSectionResult sectionResult) : base(sectionResult) {}
+ /// The property values required to create an instance of
+ /// .
+ /// Thrown when any parameter is null.
+ /// Thrown when
+ /// is a valid value, but unsupported.
+ internal MicrostabilitySectionResultRow(MicrostabilityFailureMechanismSectionResult sectionResult,
+ ConstructionProperties constructionProperties)
+ : base(sectionResult)
+ {
+ if (constructionProperties == null)
+ {
+ throw new ArgumentNullException(nameof(constructionProperties));
+ }
+ simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex;
+ detailedAssessmentResultIndex = constructionProperties.DetailedAssessmentResultIndex;
+ tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex;
+ simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex;
+ detailedAssemblyCategoryGroupIndex = constructionProperties.DetailedAssemblyCategoryGroupIndex;
+ tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex;
+ combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex;
+ manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex;
+
+ CreateColumnStateDefinitions();
+
+ Update();
+ }
+
///
/// Gets or sets the value representing the simple assessment result.
///
+ /// Thrown when
+ /// is a valid value, but unsupported.
public SimpleAssessmentResultType SimpleAssessmentResult
{
get
@@ -52,14 +99,16 @@
set
{
SectionResult.SimpleAssessmentResult = value;
- SectionResult.NotifyObservers();
+ UpdateInternalData();
}
}
///
- /// Gets the assessment layer two a of the .
+ /// Gets or sets the value representing the detailed assessment result.
///
- public DetailedAssessmentResultType AssessmentLayerTwoA
+ /// Thrown when
+ /// is a valid value, but unsupported.
+ public DetailedAssessmentResultType DetailedAssessmentResult
{
get
{
@@ -68,9 +117,291 @@
set
{
SectionResult.DetailedAssessmentResult = value;
+ UpdateInternalData();
}
}
- public override void Update() {}
+ ///
+ /// Gets or sets the value representing the tailor made assessment result.
+ ///
+ /// Thrown when
+ /// is a valid value, but unsupported.
+ public TailorMadeAssessmentResultType TailorMadeAssessmentResult
+ {
+ get
+ {
+ return SectionResult.TailorMadeAssessmentResult;
+ }
+ set
+ {
+ SectionResult.TailorMadeAssessmentResult = value;
+ UpdateInternalData();
+ }
+ }
+
+ ///
+ /// Gets the simple assembly category group.
+ ///
+ public string SimpleAssemblyCategoryGroup
+ {
+ get
+ {
+ return FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(simpleAssemblyCategoryGroup);
+ }
+ }
+
+ ///
+ /// Gets the detailed assembly category group.
+ ///
+ public string DetailedAssemblyCategoryGroup
+ {
+ get
+ {
+ return FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(detailedAssemblyCategoryGroup);
+ }
+ }
+
+ ///
+ /// Gets the tailor made assembly category group.
+ ///
+ public string TailorMadeAssemblyCategoryGroup
+ {
+ get
+ {
+ return FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(tailorMadeAssemblyCategoryGroup);
+ }
+ }
+
+ ///
+ /// Gets the combined assembly category group.
+ ///
+ public string CombinedAssemblyCategoryGroup
+ {
+ get
+ {
+ return FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(combinedAssemblyCategoryGroup);
+ }
+ }
+
+ ///
+ /// Gets or sets the indicator whether the combined assembly should be overwritten by .
+ ///
+ /// Thrown when
+ /// is a valid value, but unsupported.
+ public bool UseManualAssemblyCategoryGroup
+ {
+ get
+ {
+ return SectionResult.UseManualAssemblyCategoryGroup;
+ }
+ set
+ {
+ SectionResult.UseManualAssemblyCategoryGroup = value;
+ UpdateInternalData();
+ }
+ }
+
+ ///
+ /// Gets or sets the manually selected assembly category group.
+ ///
+ /// Thrown when
+ /// is a valid value, but unsupported.
+ public SelectableFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup
+ {
+ get
+ {
+ return SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertTo(SectionResult.ManualAssemblyCategoryGroup);
+ }
+ set
+ {
+ SectionResult.ManualAssemblyCategoryGroup = SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertFrom(value);
+ UpdateInternalData();
+ }
+ }
+
+ ///
+ /// Thrown when
+ /// is a valid value, but unsupported.
+ public override void Update()
+ {
+ UpdateDerivedData();
+ UpdateColumnStateDefinitionStates();
+ }
+
+ private void CreateColumnStateDefinitions()
+ {
+ ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(detailedAssessmentResultIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition
+ {
+ ReadOnly = true
+ });
+ ColumnStateDefinitions.Add(detailedAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition
+ {
+ ReadOnly = true
+ });
+ ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition
+ {
+ ReadOnly = true
+ });
+ ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition
+ {
+ ReadOnly = true
+ });
+ ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition());
+ }
+
+ private void UpdateDerivedData()
+ {
+ ResetErrorTexts();
+ TryGetSimpleAssemblyCategoryGroup();
+ TryGetDetailedAssemblyCategoryGroup();
+ TryGetTailorMadeAssemblyCategoryGroup();
+ TryGetCombinedAssemblyCategoryGroup();
+ }
+
+ private void ResetErrorTexts()
+ {
+ ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty;
+ ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = string.Empty;
+ ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty;
+ ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty;
+ }
+
+ private void TryGetSimpleAssemblyCategoryGroup()
+ {
+ try
+ {
+ simpleAssemblyCategoryGroup = MicrostabilityFailureMechanismSectionResultAssemblyFactory.AssembleSimpleAssessment(SectionResult);
+ }
+ catch (AssemblyException e)
+ {
+ simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None;
+ ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message;
+ }
+ }
+
+ private void TryGetDetailedAssemblyCategoryGroup()
+ {
+ try
+ {
+ detailedAssemblyCategoryGroup = MicrostabilityFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssessment(SectionResult);
+ }
+ catch (AssemblyException e)
+ {
+ detailedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None;
+ ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = e.Message;
+ }
+ }
+
+ private void TryGetTailorMadeAssemblyCategoryGroup()
+ {
+ try
+ {
+ tailorMadeAssemblyCategoryGroup = MicrostabilityFailureMechanismSectionResultAssemblyFactory.AssembleTailorMadeAssessment(SectionResult);
+ }
+ catch (AssemblyException e)
+ {
+ tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None;
+ ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message;
+ }
+ }
+
+ private void TryGetCombinedAssemblyCategoryGroup()
+ {
+ try
+ {
+ combinedAssemblyCategoryGroup = MicrostabilityFailureMechanismSectionResultAssemblyFactory.AssembleCombinedAssessment(SectionResult);
+ }
+ catch (AssemblyException e)
+ {
+ combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None;
+ ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message;
+ }
+ }
+
+ ///
+ /// Updates the column state definitions.
+ ///
+ /// Thrown when
+ /// is a valid value, but unsupported.
+ private void UpdateColumnStateDefinitionStates()
+ {
+ bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult);
+
+ FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssemblyCategoryGroup);
+ FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[detailedAssessmentResultIndex],
+ simpleAssessmentSufficient || UseManualAssemblyCategoryGroup);
+ FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex],
+ simpleAssessmentSufficient || UseManualAssemblyCategoryGroup);
+
+ if (UseManualAssemblyCategoryGroup)
+ {
+ FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]);
+ FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex]);
+ FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]);
+ FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]);
+ }
+ else
+ {
+ FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex],
+ simpleAssemblyCategoryGroup);
+ FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex],
+ detailedAssemblyCategoryGroup);
+ FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex],
+ tailorMadeAssemblyCategoryGroup);
+ FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex],
+ combinedAssemblyCategoryGroup);
+ }
+
+ FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssemblyCategoryGroup);
+ }
+
+ ///
+ /// Class holding the various construction parameters for .
+ ///
+ public class ConstructionProperties
+ {
+ ///
+ /// Sets the simple assessment result index.
+ ///
+ public int SimpleAssessmentResultIndex { internal get; set; }
+
+ ///
+ /// Sets the detailed assessment result index.
+ ///
+ public int DetailedAssessmentResultIndex { internal get; set; }
+
+ ///
+ /// Sets the tailor made assessment result index.
+ ///
+ public int TailorMadeAssessmentResultIndex { internal get; set; }
+
+ ///
+ /// Sets the simple assembly category group index.
+ ///
+ public int SimpleAssemblyCategoryGroupIndex { internal get; set; }
+
+ ///
+ /// Sets the detailed assembly category group index.
+ ///
+ public int DetailedAssemblyCategoryGroupIndex { internal get; set; }
+
+ ///
+ /// Sets the tailor made assembly category group index.
+ ///
+ public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; }
+
+ ///
+ /// Sets the combined assembly category group index.
+ ///
+ public int CombinedAssemblyCategoryGroupIndex { internal get; set; }
+
+ ///
+ /// Sets the manual assembly category group index.
+ ///
+ public int ManualAssemblyCategoryGroupIndex { internal get; set; }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/MicrostabilityResultView.cs
===================================================================
diff -u -r4503f687155622bb1b19155d27f8e3f9a5842fb0 -rb5185d21d06eaa578010cf83a0087c4f9320025c
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/MicrostabilityResultView.cs (.../MicrostabilityResultView.cs) (revision 4503f687155622bb1b19155d27f8e3f9a5842fb0)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/MicrostabilityResultView.cs (.../MicrostabilityResultView.cs) (revision b5185d21d06eaa578010cf83a0087c4f9320025c)
@@ -19,19 +19,12 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
-using System;
-using System.Linq;
-using System.Windows.Forms;
using Core.Common.Base;
-using Core.Common.Util;
-using Ringtoets.Common.Data.FailureMechanism;
-using Ringtoets.Common.Forms.Helpers;
+using Ringtoets.Common.Forms.Builders;
using Ringtoets.Common.Forms.Views;
-using Ringtoets.Common.Primitives;
using Ringtoets.Integration.Data.StandAlone;
using Ringtoets.Integration.Data.StandAlone.SectionResults;
using Ringtoets.Integration.Forms.Views.SectionResultRows;
-using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources;
namespace Ringtoets.Integration.Forms.Views.SectionResultViews
{
@@ -41,6 +34,15 @@
public class MicrostabilityResultView : FailureMechanismResultView
{
+ private const int simpleAssessmentResultIndex = 1;
+ private const int detailedAssessmentResultIndex = 2;
+ private const int tailorMadeAssessmentResultIndex = 3;
+ private const int simpleAssemblyCategoryGroupIndex = 4;
+ private const int detailedAssemblyCategoryGroupIndex = 5;
+ private const int tailorMadeAssemblyCategoryGroupIndex = 6;
+ private const int combinedAssemblyCategoryGroupIndex = 7;
+ private const int manualAssemblyCategoryGroupIndex = 9;
+
///
///
/// Creates a new instance of .
@@ -51,64 +53,62 @@
protected override MicrostabilitySectionResultRow CreateFailureMechanismSectionResultRow(MicrostabilityFailureMechanismSectionResult sectionResult)
{
- return new MicrostabilitySectionResultRow(sectionResult);
+ return new MicrostabilitySectionResultRow(
+ sectionResult,
+ new MicrostabilitySectionResultRow.ConstructionProperties
+ {
+ SimpleAssessmentResultIndex = simpleAssessmentResultIndex,
+ DetailedAssessmentResultIndex = detailedAssessmentResultIndex,
+ TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex,
+ SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex,
+ DetailedAssemblyCategoryGroupIndex = detailedAssemblyCategoryGroupIndex,
+ TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex,
+ CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex,
+ ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex
+ });
}
- protected override void Dispose(bool disposing)
+ protected override void AddDataGridColumns()
{
- DataGridViewControl.CellFormatting -= OnCellFormatting;
+ FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.Name));
- base.Dispose(disposing);
- }
+ FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.SimpleAssessmentResult));
- protected override void AddDataGridColumns()
- {
- DataGridViewControl.AddTextBoxColumn(
- nameof(MicrostabilitySectionResultRow.Name),
- RingtoetsCommonFormsResources.Section_DisplayName,
- true);
+ FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.DetailedAssessmentResult));
- EnumDisplayWrapper[] simpleAssessmentDataSource =
- Enum.GetValues(typeof(SimpleAssessmentResultType))
- .OfType()
- .Select(sa => new EnumDisplayWrapper(sa))
- .ToArray();
+ FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.TailorMadeAssessmentResult));
- DataGridViewControl.AddComboBoxColumn(
- nameof(MicrostabilitySectionResultRow.SimpleAssessmentResult),
- RingtoetsCommonFormsResources.FailureMechanismResultView_SimpleAssessmentResult_DisplayName,
- simpleAssessmentDataSource,
- nameof(EnumDisplayWrapper.Value),
- nameof(EnumDisplayWrapper.DisplayName));
+ FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.SimpleAssemblyCategoryGroup));
- EnumDisplayWrapper[] twoAResultDataSource =
- Enum.GetValues(typeof(AssessmentLayerTwoAResult))
- .OfType()
- .Select(el => new EnumDisplayWrapper(el))
- .ToArray();
- }
+ FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssemblyCategoryGroupColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.DetailedAssemblyCategoryGroup));
- protected override void BindEvents()
- {
- base.BindEvents();
+ FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.TailorMadeAssemblyCategoryGroup));
- DataGridViewControl.CellFormatting += OnCellFormatting;
- }
+ FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.CombinedAssemblyCategoryGroup));
- private void OnCellFormatting(object sender, DataGridViewCellFormattingEventArgs eventArgs)
- {
- if (eventArgs.ColumnIndex > SimpleAssessmentColumnIndex)
- {
- SimpleAssessmentResultType simpleAssessmentResult = GetDataAtRow(eventArgs.RowIndex).SimpleAssessmentResult;
- if (FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(simpleAssessmentResult))
- {
- DataGridViewControl.DisableCell(eventArgs.RowIndex, eventArgs.ColumnIndex);
- }
- else
- {
- DataGridViewControl.RestoreCell(eventArgs.RowIndex, eventArgs.ColumnIndex);
- }
- }
+ FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyCategoryGroupColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.UseManualAssemblyCategoryGroup));
+
+ FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn(
+ DataGridViewControl,
+ nameof(MicrostabilitySectionResultRow.ManualAssemblyCategoryGroup));
}
}
}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/SectionResultRows/MicrostabilitySectionResultRowTest.cs
===================================================================
diff -u -r4503f687155622bb1b19155d27f8e3f9a5842fb0 -rb5185d21d06eaa578010cf83a0087c4f9320025c
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/SectionResultRows/MicrostabilitySectionResultRowTest.cs (.../MicrostabilitySectionResultRowTest.cs) (revision 4503f687155622bb1b19155d27f8e3f9a5842fb0)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/SectionResultRows/MicrostabilitySectionResultRowTest.cs (.../MicrostabilitySectionResultRowTest.cs) (revision b5185d21d06eaa578010cf83a0087c4f9320025c)
@@ -20,13 +20,22 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
+using System.Drawing;
using Core.Common.Base;
+using Core.Common.Controls.DataGrid;
using Core.Common.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
+using Ringtoets.AssemblyTool.Data;
+using Ringtoets.AssemblyTool.Forms;
+using Ringtoets.AssemblyTool.KernelWrapper.Calculators;
+using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators;
+using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly;
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.TestUtil;
-using Ringtoets.Common.Forms.TypeConverters;
+using Ringtoets.Common.Forms.Helpers;
+using Ringtoets.Common.Forms.TestUtil;
using Ringtoets.Common.Forms.Views;
using Ringtoets.Common.Primitives;
using Ringtoets.Integration.Data.StandAlone.SectionResults;
@@ -36,23 +45,400 @@
{
[TestFixture]
public class MicrostabilitySectionResultRowTest
+
{
+ private static MicrostabilitySectionResultRow.ConstructionProperties ConstructionProperties
+ {
+ get
+ {
+ return new MicrostabilitySectionResultRow.ConstructionProperties
+ {
+ SimpleAssessmentResultIndex = 1,
+ DetailedAssessmentResultIndex = 2,
+ TailorMadeAssessmentResultIndex = 3,
+ SimpleAssemblyCategoryGroupIndex = 4,
+ DetailedAssemblyCategoryGroupIndex = 5,
+ TailorMadeAssemblyCategoryGroupIndex = 6,
+ CombinedAssemblyCategoryGroupIndex = 7,
+ ManualAssemblyCategoryGroupIndex = 10
+ };
+ }
+ }
+
[Test]
- public void Constructor_WithParameters_ExpectedValues()
+ public void Constructor_ConstructionPropertiesNull_ThrowsArgumentNullException()
{
- // Setup
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
var result = new MicrostabilityFailureMechanismSectionResult(section);
// Call
- var row = new MicrostabilitySectionResultRow(result);
+ TestDelegate test = () => new MicrostabilitySectionResultRow(result, null);
// Assert
- Assert.IsInstanceOf>(row);
- Assert.AreEqual(result.SimpleAssessmentResult, row.SimpleAssessmentResult);
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("constructionProperties", exception.ParamName);
}
[Test]
+ public void Constructor_WithParameters_ExpectedValues()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ // Call
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Assert
+ Assert.IsInstanceOf>(row);
+
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+ Assert.AreEqual(8, columnStateDefinitions.Count);
+
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.SimpleAssessmentResultIndex);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.DetailedAssessmentResultIndex);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.TailorMadeAssessmentResultIndex);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.SimpleAssemblyCategoryGroupIndex);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.DetailedAssemblyCategoryGroupIndex);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.TailorMadeAssemblyCategoryGroupIndex);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.CombinedAssemblyCategoryGroupIndex);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.ManualAssemblyCategoryGroupIndex);
+
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsEnabled(columnStateDefinitions[ConstructionProperties.SimpleAssessmentResultIndex]);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsEnabled(columnStateDefinitions[ConstructionProperties.DetailedAssessmentResultIndex]);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsEnabled(columnStateDefinitions[ConstructionProperties.TailorMadeAssessmentResultIndex]);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsDisabled(columnStateDefinitions[ConstructionProperties.ManualAssemblyCategoryGroupIndex]);
+
+ Assert.AreEqual(result.SimpleAssessmentResult, row.SimpleAssessmentResult);
+ Assert.AreEqual(result.DetailedAssessmentResult, row.DetailedAssessmentResult);
+ Assert.AreEqual(result.TailorMadeAssessmentResult, row.TailorMadeAssessmentResult);
+ Assert.AreEqual(result.UseManualAssemblyCategoryGroup, row.UseManualAssemblyCategoryGroup);
+ Assert.AreEqual(SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertTo(result.ManualAssemblyCategoryGroup),
+ row.ManualAssemblyCategoryGroup);
+ }
+ }
+
+ [Test]
+ public void Constructor_AssemblyRan_ReturnCategoryGroups()
+ {
+ // Setup
+ var random = new Random(39);
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+ calculator.SimpleAssessmentAssemblyOutput = new FailureMechanismSectionAssembly(
+ random.NextDouble(),
+ random.NextEnumValue());
+ calculator.DetailedAssessmentAssemblyGroupOutput = random.NextEnumValue();
+ calculator.TailorMadeAssemblyCategoryOutput = random.NextEnumValue();
+ calculator.CombinedAssemblyCategoryOutput = random.NextEnumValue();
+
+ // Call
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Assert
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.SimpleAssessmentAssemblyOutput.Group),
+ row.SimpleAssemblyCategoryGroup);
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.DetailedAssessmentAssemblyGroupOutput.Value),
+ row.DetailedAssemblyCategoryGroup);
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.TailorMadeAssemblyCategoryOutput.Value),
+ row.TailorMadeAssemblyCategoryGroup);
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.CombinedAssemblyCategoryOutput.Value),
+ row.CombinedAssemblyCategoryGroup);
+ }
+ }
+
+ [Test]
+ public void Constructor_AssemblyThrowsException_ExpectedColumnStates()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+ calculator.ThrowExceptionOnCalculate = true;
+
+ // Call
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Assert
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+ const string expectedErrorText = "Message";
+
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.SimpleAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.DetailedAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.TailorMadeAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.CombinedAssemblyCategoryGroupIndex].ErrorText);
+ }
+ }
+
+ [Test]
+ public void UseManualAssemblyCategoryGroup_SetNewValue_NotifyObserversAndPropertyChanged()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var observer = mocks.StrictMock();
+ observer.Expect(o => o.UpdateObserver());
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+ result.Attach(observer);
+
+ bool newValue = !result.UseManualAssemblyCategoryGroup;
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Precondition
+ Assert.IsFalse(result.UseManualAssemblyCategoryGroup);
+
+ // Call
+ row.UseManualAssemblyCategoryGroup = newValue;
+
+ // Assert
+ Assert.AreEqual(newValue, result.UseManualAssemblyCategoryGroup);
+ mocks.VerifyAll();
+ }
+ }
+
+ [Test]
+ public void ManualAssemblyCategoryGroup_SetNewValue_NotifyObserversAndPropertyChanged()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var observer = mocks.StrictMock();
+ observer.Expect(o => o.UpdateObserver());
+ mocks.ReplayAll();
+
+ var random = new Random(39);
+ var newValue = random.NextEnumValue();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+ result.Attach(observer);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Call
+ row.ManualAssemblyCategoryGroup = newValue;
+
+ // Assert
+ FailureMechanismSectionAssemblyCategoryGroup expectedCategoryGroup = SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertFrom(newValue);
+ Assert.AreEqual(expectedCategoryGroup, result.ManualAssemblyCategoryGroup);
+ mocks.VerifyAll();
+ }
+ }
+
+ [Test]
+ public void GivenRowWithoutAssemblyErrors_WhenUpdatingAndAssemblyThrowsException_ThenAssemblyGroupSetToNone()
+ {
+ // Given
+ var random = new Random(39);
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+ calculator.SimpleAssessmentAssemblyOutput = new FailureMechanismSectionAssembly(
+ random.NextDouble(),
+ random.NextEnumValue());
+ calculator.DetailedAssessmentAssemblyGroupOutput = random.NextEnumValue();
+ calculator.TailorMadeAssemblyCategoryOutput = random.NextEnumValue();
+ calculator.CombinedAssemblyCategoryOutput = random.NextEnumValue();
+
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Precondition
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.SimpleAssessmentAssemblyOutput.Group),
+ row.SimpleAssemblyCategoryGroup);
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.DetailedAssessmentAssemblyGroupOutput.Value),
+ row.DetailedAssemblyCategoryGroup);
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.TailorMadeAssemblyCategoryOutput.Value),
+ row.TailorMadeAssemblyCategoryGroup);
+ Assert.AreEqual(FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(calculator.CombinedAssemblyCategoryOutput.Value),
+ row.CombinedAssemblyCategoryGroup);
+
+ // When
+ calculator.ThrowExceptionOnCalculate = true;
+ row.SimpleAssessmentResult = SimpleAssessmentResultType.AssessFurther;
+
+ // Then
+ string expectedAssemblyDisplayName = FailureMechanismSectionResultRowHelper.GetCategoryGroupDisplayname(FailureMechanismSectionAssemblyCategoryGroup.None);
+ Assert.AreEqual(expectedAssemblyDisplayName, row.SimpleAssemblyCategoryGroup);
+ Assert.AreEqual(expectedAssemblyDisplayName, row.DetailedAssemblyCategoryGroup);
+ Assert.AreEqual(expectedAssemblyDisplayName, row.TailorMadeAssemblyCategoryGroup);
+ Assert.AreEqual(expectedAssemblyDisplayName, row.CombinedAssemblyCategoryGroup);
+ }
+ }
+
+ [Test]
+ public void GivenRowWithAssemblyErrors_WhenUpdatingAndAssemblyDoesNotThrowException_ThenExpectedColumnStates()
+ {
+ // Given
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+ calculator.ThrowExceptionOnCalculate = true;
+
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Precondition
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+ const string expectedErrorText = "Message";
+
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.SimpleAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.DetailedAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.TailorMadeAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(expectedErrorText, columnStateDefinitions[ConstructionProperties.CombinedAssemblyCategoryGroupIndex].ErrorText);
+
+ // When
+ calculator.ThrowExceptionOnCalculate = false;
+ row.SimpleAssessmentResult = SimpleAssessmentResultType.AssessFurther;
+
+ // Then
+ Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.SimpleAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.DetailedAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.TailorMadeAssemblyCategoryGroupIndex].ErrorText);
+ Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.CombinedAssemblyCategoryGroupIndex].ErrorText);
+ }
+ }
+
+ #region Column States
+
+ [Test]
+ [TestCase(SimpleAssessmentResultType.None, true)]
+ [TestCase(SimpleAssessmentResultType.AssessFurther, true)]
+ [TestCase(SimpleAssessmentResultType.NotApplicable, false)]
+ [TestCase(SimpleAssessmentResultType.ProbabilityNegligible, false)]
+ public void Constructor_WithSimpleAssessmentResultSet_ExpectedColumnStates(SimpleAssessmentResultType simpleAssessmentResult,
+ bool cellsEnabled)
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section)
+ {
+ SimpleAssessmentResult = simpleAssessmentResult
+ };
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ // Call
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Assert
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+
+ FailureMechanismSectionResultRowTestHelper.AssertColumnState(columnStateDefinitions[ConstructionProperties.DetailedAssessmentResultIndex],
+ cellsEnabled);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnState(columnStateDefinitions[ConstructionProperties.TailorMadeAssessmentResultIndex],
+ cellsEnabled);
+ }
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Constructor_WithUseManualAssemblyCategoryGroupSet_ExpectedColumnStates(bool useManualAssemblyCategoryGroup)
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section)
+ {
+ UseManualAssemblyCategoryGroup = useManualAssemblyCategoryGroup
+ };
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ // Call
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Assert
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+
+ FailureMechanismSectionResultRowTestHelper.AssertColumnState(columnStateDefinitions[ConstructionProperties.SimpleAssessmentResultIndex],
+ !useManualAssemblyCategoryGroup);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnState(columnStateDefinitions[ConstructionProperties.DetailedAssessmentResultIndex],
+ !useManualAssemblyCategoryGroup);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnState(columnStateDefinitions[ConstructionProperties.TailorMadeAssessmentResultIndex],
+ !useManualAssemblyCategoryGroup);
+
+ if (useManualAssemblyCategoryGroup)
+ {
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsDisabled(
+ columnStateDefinitions[ConstructionProperties.SimpleAssemblyCategoryGroupIndex]);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsDisabled(
+ columnStateDefinitions[ConstructionProperties.DetailedAssemblyCategoryGroupIndex]);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsDisabled(
+ columnStateDefinitions[ConstructionProperties.TailorMadeAssemblyCategoryGroupIndex]);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnStateIsDisabled(
+ columnStateDefinitions[ConstructionProperties.CombinedAssemblyCategoryGroupIndex]);
+ }
+
+ FailureMechanismSectionResultRowTestHelper.AssertColumnState(columnStateDefinitions[ConstructionProperties.ManualAssemblyCategoryGroupIndex],
+ useManualAssemblyCategoryGroup);
+ }
+ }
+
+ [Test]
+ [TestCaseSource(typeof(FailureMechanismSectionResultRowTestHelper), nameof(FailureMechanismSectionResultRowTestHelper.CategoryGroupColorCases))]
+ public void Constructor_WithAssemblyCategoryGroupsSet_ExpectedColumnStates(FailureMechanismSectionAssemblyCategoryGroup assemblyCategoryGroup,
+ Color expectedBackgroundColor)
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+ var assemblyOutput = new FailureMechanismSectionAssembly(0, assemblyCategoryGroup);
+ calculator.SimpleAssessmentAssemblyOutput = assemblyOutput;
+ calculator.DetailedAssessmentAssemblyGroupOutput = assemblyCategoryGroup;
+ calculator.TailorMadeAssemblyCategoryOutput = assemblyCategoryGroup;
+ calculator.CombinedAssemblyCategoryOutput = assemblyCategoryGroup;
+
+ // Call
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Assert
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+
+ FailureMechanismSectionResultRowTestHelper.AssertColumnWithColorState(columnStateDefinitions[ConstructionProperties.SimpleAssemblyCategoryGroupIndex],
+ expectedBackgroundColor);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnWithColorState(columnStateDefinitions[ConstructionProperties.DetailedAssemblyCategoryGroupIndex],
+ expectedBackgroundColor);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnWithColorState(columnStateDefinitions[ConstructionProperties.TailorMadeAssemblyCategoryGroupIndex],
+ expectedBackgroundColor);
+ FailureMechanismSectionResultRowTestHelper.AssertColumnWithColorState(columnStateDefinitions[ConstructionProperties.CombinedAssemblyCategoryGroupIndex],
+ expectedBackgroundColor);
+ }
+ }
+
+ #endregion
+
+ #region Registration
+
+ [Test]
public void SimpleAssessmentResult_SetNewValue_NotifyObserversAndPropertyChanged()
{
// Setup
@@ -68,14 +454,77 @@
var result = new MicrostabilityFailureMechanismSectionResult(section);
result.Attach(observer);
- var row = new MicrostabilitySectionResultRow(result);
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
- // Call
- row.SimpleAssessmentResult = newValue;
+ // Call
+ row.SimpleAssessmentResult = newValue;
- // Assert
- Assert.AreEqual(newValue, result.SimpleAssessmentResult);
- mocks.VerifyAll();
+ // Assert
+ Assert.AreEqual(newValue, result.SimpleAssessmentResult);
+ mocks.VerifyAll();
+ }
}
+
+ [Test]
+ public void DetailedAssessmentResult_SetNewValue_NotifyObserversAndPropertyChanged()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var observer = mocks.StrictMock();
+ observer.Expect(o => o.UpdateObserver());
+ mocks.ReplayAll();
+
+ var random = new Random(39);
+ var newValue = random.NextEnumValue();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+ result.Attach(observer);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Call
+ row.DetailedAssessmentResult = newValue;
+
+ // Assert
+ Assert.AreEqual(newValue, result.DetailedAssessmentResult);
+ mocks.VerifyAll();
+ }
+ }
+
+ [Test]
+ public void TailorMadeAssessmentResult_SetNewValue_NotifyObserversAndPropertyChanged()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var observer = mocks.StrictMock();
+ observer.Expect(o => o.UpdateObserver());
+ mocks.ReplayAll();
+
+ var random = new Random(39);
+ var newValue = random.NextEnumValue();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new MicrostabilityFailureMechanismSectionResult(section);
+ result.Attach(observer);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var row = new MicrostabilitySectionResultRow(result, ConstructionProperties);
+
+ // Call
+ row.TailorMadeAssessmentResult = newValue;
+
+ // Assert
+ Assert.AreEqual(newValue, result.TailorMadeAssessmentResult);
+ mocks.VerifyAll();
+ }
+ }
+
+ #endregion
}
}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/SectionResultViews/MicrostabilityResultViewTest.cs
===================================================================
diff -u -r4503f687155622bb1b19155d27f8e3f9a5842fb0 -rb5185d21d06eaa578010cf83a0087c4f9320025c
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/SectionResultViews/MicrostabilityResultViewTest.cs (.../MicrostabilityResultViewTest.cs) (revision 4503f687155622bb1b19155d27f8e3f9a5842fb0)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/SectionResultViews/MicrostabilityResultViewTest.cs (.../MicrostabilityResultViewTest.cs) (revision b5185d21d06eaa578010cf83a0087c4f9320025c)
@@ -19,8 +19,15 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System.Windows.Forms;
+using Core.Common.Base;
+using NUnit.Extensions.Forms;
using NUnit.Framework;
+using Ringtoets.AssemblyTool.Forms;
+using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators;
+using Ringtoets.Common.Data.TestUtil;
using Ringtoets.Common.Forms.Views;
+using Ringtoets.Common.Primitives;
using Ringtoets.Integration.Data.StandAlone;
using Ringtoets.Integration.Data.StandAlone.SectionResults;
using Ringtoets.Integration.Forms.Views.SectionResultRows;
@@ -31,6 +38,18 @@
[TestFixture]
public class MicrostabilityResultViewTest
{
+ private const int nameColumnIndex = 0;
+ private const int simpleAssessmentResultIndex = 1;
+ private const int detailedAssessmentResultIndex = 2;
+ private const int tailorMadeAssessmentResultIndex = 3;
+ private const int simpleAssemblyCategoryGroupIndex = 4;
+ private const int detailedAssemblyCategoryGroupIndex = 5;
+ private const int tailorMadeAssemblyCategoryGroupIndex = 6;
+ private const int combinedAssemblyCategoryGroupIndex = 7;
+ private const int useManualAssemblyCategoryGroupIndex = 8;
+ private const int manualAssemblyCategoryGroupIndex = 9;
+ private const int columnCount = 10;
+
[Test]
public void Constructor_ExpectedValues()
{
@@ -47,5 +66,95 @@
Assert.AreSame(failureMechanism, view.FailureMechanism);
}
}
+
+ [Test]
+ public void GivenFormWithFailureMechanismResultView_ThenExpectedColumnsAreAdded()
+ {
+ // Given
+ using (var form = new Form())
+ using (var view = new MicrostabilityResultView(new ObservableList(),
+ new MicrostabilityFailureMechanism()))
+ {
+ form.Controls.Add(view);
+ form.Show();
+
+ // Then
+ var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
+
+ Assert.AreEqual(columnCount, dataGridView.ColumnCount);
+
+ Assert.IsInstanceOf(dataGridView.Columns[nameColumnIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[simpleAssessmentResultIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[detailedAssessmentResultIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[tailorMadeAssessmentResultIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[simpleAssemblyCategoryGroupIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[detailedAssemblyCategoryGroupIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[tailorMadeAssemblyCategoryGroupIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[combinedAssemblyCategoryGroupIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[useManualAssemblyCategoryGroupIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[manualAssemblyCategoryGroupIndex]);
+
+ 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("Toets op maat", dataGridView.Columns[tailorMadeAssessmentResultIndex].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("Overschrijf\r\nassemblageresultaat", dataGridView.Columns[useManualAssemblyCategoryGroupIndex].HeaderText);
+ Assert.AreEqual("Assemblageresultaat\r\nhandmatig", dataGridView.Columns[manualAssemblyCategoryGroupIndex].HeaderText);
+
+ Assert.IsTrue(dataGridView.Columns[nameColumnIndex].ReadOnly);
+ Assert.IsFalse(dataGridView.Columns[simpleAssessmentResultIndex].ReadOnly);
+ Assert.IsFalse(dataGridView.Columns[detailedAssessmentResultIndex].ReadOnly);
+ Assert.IsFalse(dataGridView.Columns[tailorMadeAssessmentResultIndex].ReadOnly);
+ Assert.IsTrue(dataGridView.Columns[simpleAssemblyCategoryGroupIndex].ReadOnly);
+ Assert.IsTrue(dataGridView.Columns[detailedAssemblyCategoryGroupIndex].ReadOnly);
+ Assert.IsTrue(dataGridView.Columns[tailorMadeAssemblyCategoryGroupIndex].ReadOnly);
+ Assert.IsTrue(dataGridView.Columns[combinedAssemblyCategoryGroupIndex].ReadOnly);
+ Assert.IsFalse(dataGridView.Columns[useManualAssemblyCategoryGroupIndex].ReadOnly);
+ Assert.IsFalse(dataGridView.Columns[manualAssemblyCategoryGroupIndex].ReadOnly);
+
+ Assert.AreEqual(DataGridViewAutoSizeColumnsMode.AllCells, dataGridView.AutoSizeColumnsMode);
+ Assert.AreEqual(DataGridViewContentAlignment.MiddleCenter, dataGridView.ColumnHeadersDefaultCellStyle.Alignment);
+ }
+ }
+
+ [Test]
+ public void FailureMechanismResultsView_AllDataSet_DataGridViewCorrectlyInitialized()
+ {
+ // Setup
+ var failureMechanism = new MicrostabilityFailureMechanism();
+ failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1"));
+
+ // Call
+ using (var form = new Form())
+ using (new AssemblyToolCalculatorFactoryConfig())
+ using (var view = new MicrostabilityResultView(failureMechanism.SectionResults, failureMechanism))
+ {
+ form.Controls.Add(view);
+ form.Show();
+ var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
+
+ // Assert
+ Assert.AreEqual(columnCount, dataGridView.ColumnCount);
+
+ DataGridViewRowCollection rows = dataGridView.Rows;
+ Assert.AreEqual(1, rows.Count);
+
+ DataGridViewCellCollection cells = rows[0].Cells;
+ Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue);
+ Assert.AreEqual(SimpleAssessmentResultType.None, cells[simpleAssessmentResultIndex].Value);
+ Assert.AreEqual(DetailedAssessmentResultType.None, cells[detailedAssessmentResultIndex].Value);
+ Assert.AreEqual(TailorMadeAssessmentResultType.None, cells[tailorMadeAssessmentResultIndex].Value);
+ Assert.AreEqual("Iv", cells[simpleAssemblyCategoryGroupIndex].Value);
+ Assert.AreEqual("IIv", cells[detailedAssemblyCategoryGroupIndex].Value);
+ Assert.AreEqual("IIv", cells[tailorMadeAssemblyCategoryGroupIndex].Value);
+ Assert.AreEqual("IIv", cells[combinedAssemblyCategoryGroupIndex].Value);
+ Assert.AreEqual(false, cells[useManualAssemblyCategoryGroupIndex].Value);
+ Assert.AreEqual(SelectableFailureMechanismSectionAssemblyCategoryGroup.None, cells[manualAssemblyCategoryGroupIndex].Value);
+ }
+ }
}
}
\ No newline at end of file