Index: Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenarioRow.cs
===================================================================
diff -u -ra7edac6e409e6f2bab9e784261cd59ece1a2a660 -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenarioRow.cs (.../ScenarioRow.cs) (revision a7edac6e409e6f2bab9e784261cd59ece1a2a660)
+++ Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenarioRow.cs (.../ScenarioRow.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -90,7 +90,7 @@
/// Gets the failure probability of the .
///
[TypeConverter(typeof(NoProbabilityValueDoubleConverter))]
- public abstract string FailureProbability { get; }
+ public abstract double FailureProbability { get; }
///
/// Updates the row based on the current output of the .
Index: Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenariosView.Designer.cs
===================================================================
diff -u -r290fcfde155c13a1e87a3e9230bbde7e63ab0476 -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenariosView.Designer.cs (.../ScenariosView.Designer.cs) (revision 290fcfde155c13a1e87a3e9230bbde7e63ab0476)
+++ Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenariosView.Designer.cs (.../ScenariosView.Designer.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -21,7 +21,7 @@
namespace Riskeer.Common.Forms.Views
{
- partial class ScenariosView
+ partial class ScenariosView
{
///
/// Required designer variable.
@@ -42,7 +42,7 @@
this.listBox = new System.Windows.Forms.ListBox();
this.tableLayoutPanelDataGrid = new System.Windows.Forms.TableLayoutPanel();
this.labelCalculations = new System.Windows.Forms.Label();
- this.dataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl();
+ this.DataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
this.splitContainer.Panel1.SuspendLayout();
this.splitContainer.Panel2.SuspendLayout();
@@ -107,7 +107,7 @@
this.tableLayoutPanelDataGrid.ColumnCount = 1;
this.tableLayoutPanelDataGrid.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanelDataGrid.Controls.Add(this.labelCalculations, 0, 0);
- this.tableLayoutPanelDataGrid.Controls.Add(this.dataGridViewControl, 0, 1);
+ this.tableLayoutPanelDataGrid.Controls.Add(this.DataGridViewControl, 0, 1);
this.tableLayoutPanelDataGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanelDataGrid.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanelDataGrid.Name = "tableLayoutPanelDataGrid";
@@ -126,15 +126,15 @@
this.labelCalculations.TabIndex = 0;
this.labelCalculations.Text = Properties.Resources.Calculations_per_FailureMechanismSection_DisplayName;
//
- // dataGridViewControl
+ // DataGridViewControl
//
- this.dataGridViewControl.Dock = System.Windows.Forms.DockStyle.Fill;
- this.dataGridViewControl.Location = new System.Drawing.Point(3, 16);
- this.dataGridViewControl.MultiSelect = true;
- this.dataGridViewControl.Name = "dataGridViewControl";
- this.dataGridViewControl.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.dataGridViewControl.Size = new System.Drawing.Size(183, 131);
- this.dataGridViewControl.TabIndex = 1;
+ this.DataGridViewControl.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.DataGridViewControl.Location = new System.Drawing.Point(3, 16);
+ this.DataGridViewControl.MultiSelect = true;
+ this.DataGridViewControl.Name = "dataGridViewControl";
+ this.DataGridViewControl.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
+ this.DataGridViewControl.Size = new System.Drawing.Size(183, 131);
+ this.DataGridViewControl.TabIndex = 1;
//
// ScenariosView
//
@@ -159,6 +159,6 @@
private System.Windows.Forms.ListBox listBox;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelDataGrid;
private System.Windows.Forms.Label labelCalculations;
- private Core.Common.Controls.DataGrid.DataGridViewControl dataGridViewControl;
+ protected Core.Common.Controls.DataGrid.DataGridViewControl DataGridViewControl;
}
}
Index: Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenariosView.cs
===================================================================
diff -u -r644ba108489775ba36f264fc2cfc15fc9ad8968b -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenariosView.cs (.../ScenariosView.cs) (revision 644ba108489775ba36f264fc2cfc15fc9ad8968b)
+++ Riskeer/Common/src/Riskeer.Common.Forms/Views/ScenariosView.cs (.../ScenariosView.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -38,13 +38,13 @@
/// The type of calculation scenario.
/// The type of calculation input.
/// The type of the scenario row.
- public abstract partial class ScenariosView : UserControl, IView
+ /// The type of the failure mechanism.
+ public abstract partial class ScenariosView : UserControl, IView
where TCalculationScenario : class, ICalculationScenario
where TCalculationInput : class, ICalculationInput
where TScenarioRow : ScenarioRow
+ where TFailureMechanism : IFailureMechanism
{
- private readonly IFailureMechanism failureMechanism;
-
private Observer failureMechanismObserver;
private RecursiveObserver calculationGroupObserver;
private RecursiveObserver calculationObserver;
@@ -53,15 +53,15 @@
private IEnumerable scenarioRows;
///
- /// Creates a new instance of .
+ /// Creates a new instance of .
///
/// The
/// to get the calculations from.
- /// The
+ /// The
/// to get the sections from.
/// Thrown when any parameter
/// is null.
- protected ScenariosView(CalculationGroup calculationGroup, IFailureMechanism failureMechanism)
+ protected ScenariosView(CalculationGroup calculationGroup, TFailureMechanism failureMechanism)
{
if (calculationGroup == null)
{
@@ -74,24 +74,44 @@
}
CalculationGroup = calculationGroup;
- this.failureMechanism = failureMechanism;
+ FailureMechanism = failureMechanism;
InitializeObservers();
InitializeComponent();
+ }
+ ///
+ ///
+ /// Initialization is performed in in order to
+ /// prevent errors due to virtual member calls in constructor.
+ ///
+ protected override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+
InitializeListBox();
InitializeDataGridView();
+
UpdateSectionsListBox();
UpdateDataGridViewDataSource();
}
- public object Data { get; set; }
+ public object Data
+ {
+ get => CalculationGroup;
+ set => CalculationGroup = (CalculationGroup) value;
+ }
///
+ /// Gets the .
+ ///
+ protected TFailureMechanism FailureMechanism { get; }
+
+ ///
/// Gets the .
///
- protected CalculationGroup CalculationGroup { get; }
+ public CalculationGroup CalculationGroup { get; private set; }
///
/// Gets the input of a .
@@ -104,7 +124,7 @@
/// Gets a collection of .
///
/// The collection of .
- protected abstract IEnumerable GetScenarioRows();
+ protected abstract IEnumerable GetScenarioRows(FailureMechanismSection failureMechanismSection);
protected override void Dispose(bool disposing)
{
@@ -121,11 +141,31 @@
base.Dispose(disposing);
}
+ protected virtual void InitializeDataGridView()
+ {
+ DataGridViewControl.AddCheckBoxColumn(
+ nameof(ScenarioRow.IsRelevant),
+ Resources.ScenarioView_InitializeDataGridView_In_final_rating
+ );
+ DataGridViewControl.AddTextBoxColumn(
+ nameof(ScenarioRow.Contribution),
+ Resources.ScenarioView_InitializeDataGridView_Contribution
+ );
+ DataGridViewControl.AddTextBoxColumn(
+ nameof(ScenarioRow.Name),
+ Resources.ScenarioView_Name_DisplayName
+ );
+ DataGridViewControl.AddTextBoxColumn(
+ nameof(ScenarioRow.FailureProbability),
+ Resources.ScenarioView_FailureProbability_DisplayName
+ );
+ }
+
private void InitializeObservers()
{
failureMechanismObserver = new Observer(UpdateSectionsListBox)
{
- Observable = failureMechanism
+ Observable = FailureMechanism
};
calculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children)
@@ -149,36 +189,16 @@
private void UpdateDataGridViewDataSource()
{
- if (!(listBox.SelectedItem is FailureMechanismSection))
+ if (!(listBox.SelectedItem is FailureMechanismSection failureMechanismSection))
{
- dataGridViewControl.SetDataSource(null);
+ DataGridViewControl.SetDataSource(null);
return;
}
- scenarioRows = GetScenarioRows();
- dataGridViewControl.SetDataSource(scenarioRows);
+ scenarioRows = GetScenarioRows(failureMechanismSection);
+ DataGridViewControl.SetDataSource(scenarioRows);
}
- private void InitializeDataGridView()
- {
- dataGridViewControl.AddCheckBoxColumn(
- nameof(ScenarioRow.IsRelevant),
- Resources.ScenarioView_InitializeDataGridView_In_final_rating
- );
- dataGridViewControl.AddTextBoxColumn(
- nameof(ScenarioRow.Contribution),
- Resources.ScenarioView_InitializeDataGridView_Contribution
- );
- dataGridViewControl.AddTextBoxColumn(
- nameof(ScenarioRow.Name),
- Resources.ScenarioView_Name_DisplayName
- );
- dataGridViewControl.AddTextBoxColumn(
- nameof(ScenarioRow.FailureProbability),
- Resources.ScenarioView_FailureProbability_DisplayName
- );
- }
-
private void InitializeListBox()
{
listBox.DisplayMember = nameof(FailureMechanismSection.Name);
@@ -189,10 +209,10 @@
{
listBox.Items.Clear();
- if (failureMechanism.Sections.Any())
+ if (FailureMechanism.Sections.Any())
{
- listBox.Items.AddRange(failureMechanism.Sections.Cast
private void InitializeComponent()
{
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PipingScenariosView));
- this.splitContainer = new System.Windows.Forms.SplitContainer();
- this.tableLayoutPanelListBox = new System.Windows.Forms.TableLayoutPanel();
- this.listBox = new System.Windows.Forms.ListBox();
- this.labelFailureMechanismSections = new System.Windows.Forms.Label();
- this.tableLayoutPanelDataGrid = new System.Windows.Forms.TableLayoutPanel();
- this.labelCalculations = new System.Windows.Forms.Label();
- this.dataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
- this.splitContainer.Panel1.SuspendLayout();
- this.splitContainer.Panel2.SuspendLayout();
- this.splitContainer.SuspendLayout();
- this.tableLayoutPanelListBox.SuspendLayout();
- this.tableLayoutPanelDataGrid.SuspendLayout();
- this.SuspendLayout();
- //
- // splitContainer
- //
- resources.ApplyResources(this.splitContainer, "splitContainer");
- this.splitContainer.Name = "splitContainer";
- //
- // splitContainer.Panel1
- //
- this.splitContainer.Panel1.Controls.Add(this.tableLayoutPanelListBox);
- //
- // splitContainer.Panel2
- //
- this.splitContainer.Panel2.Controls.Add(this.tableLayoutPanelDataGrid);
- this.splitContainer.TabStop = false;
- //
- // tableLayoutPanelListBox
- //
- resources.ApplyResources(this.tableLayoutPanelListBox, "tableLayoutPanelListBox");
- this.tableLayoutPanelListBox.Controls.Add(this.listBox, 0, 1);
- this.tableLayoutPanelListBox.Controls.Add(this.labelFailureMechanismSections, 0, 0);
- this.tableLayoutPanelListBox.Name = "tableLayoutPanelListBox";
- //
- // listBox
- //
- resources.ApplyResources(this.listBox, "listBox");
- this.listBox.FormattingEnabled = true;
- this.listBox.Name = "listBox";
- //
- // labelFailureMechanismSections
- //
- resources.ApplyResources(this.labelFailureMechanismSections, "labelFailureMechanismSections");
- this.labelFailureMechanismSections.Name = "labelFailureMechanismSections";
- //
- // tableLayoutPanelDataGrid
- //
- resources.ApplyResources(this.tableLayoutPanelDataGrid, "tableLayoutPanelDataGrid");
- this.tableLayoutPanelDataGrid.Controls.Add(this.labelCalculations, 0, 0);
- this.tableLayoutPanelDataGrid.Controls.Add(this.dataGridViewControl, 0, 1);
- this.tableLayoutPanelDataGrid.Name = "tableLayoutPanelDataGrid";
- //
- // labelCalculations
- //
- resources.ApplyResources(this.labelCalculations, "labelCalculations");
- this.labelCalculations.Name = "labelCalculations";
- //
- // dataGridViewControl
- //
- resources.ApplyResources(this.dataGridViewControl, "dataGridViewControl");
- this.dataGridViewControl.MultiSelect = true;
- this.dataGridViewControl.Name = "dataGridViewControl";
- this.dataGridViewControl.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- //
- // PipingScenariosView
- //
- resources.ApplyResources(this, "$this");
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.Controls.Add(this.splitContainer);
- this.Name = "PipingScenariosView";
- this.splitContainer.Panel1.ResumeLayout(false);
- this.splitContainer.Panel2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
- this.splitContainer.ResumeLayout(false);
- this.tableLayoutPanelListBox.ResumeLayout(false);
- this.tableLayoutPanelListBox.PerformLayout();
- this.tableLayoutPanelDataGrid.ResumeLayout(false);
- this.tableLayoutPanelDataGrid.PerformLayout();
- this.ResumeLayout(false);
-
}
#endregion
-
- private System.Windows.Forms.SplitContainer splitContainer;
- private System.Windows.Forms.TableLayoutPanel tableLayoutPanelListBox;
- private System.Windows.Forms.ListBox listBox;
- private System.Windows.Forms.Label labelFailureMechanismSections;
- private System.Windows.Forms.TableLayoutPanel tableLayoutPanelDataGrid;
- private System.Windows.Forms.Label labelCalculations;
- private Core.Common.Controls.DataGrid.DataGridViewControl dataGridViewControl;
}
}
Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs
===================================================================
diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea)
+++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -22,206 +22,76 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Windows.Forms;
-using Core.Common.Base;
using Core.Common.Base.Geometry;
-using Core.Common.Controls.Views;
-using Core.Common.Util.Extensions;
using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.Calculation;
using Riskeer.Common.Data.FailureMechanism;
+using Riskeer.Common.Forms.Views;
using Riskeer.Piping.Data;
using Riskeer.Piping.Forms.Properties;
namespace Riskeer.Piping.Forms.Views
{
///
- /// This class is a view for configuring piping calculations.
+ /// View for configuring piping calculation scenarios.
///
- public partial class PipingScenariosView : UserControl, IView
+ public partial class PipingScenariosView : ScenariosView
{
private readonly IAssessmentSection assessmentSection;
- private readonly RecursiveObserver pipingInputObserver;
- private readonly RecursiveObserver pipingCalculationGroupObserver;
- private readonly RecursiveObserver pipingCalculationObserver;
- private readonly Observer pipingFailureMechanismObserver;
- private CalculationGroup calculationGroup;
- private PipingFailureMechanism pipingFailureMechanism;
- private List pipingScenarioRows;
///
- /// Creates a new instance of the class.
+ /// Creates a new instance of .
///
+ /// The
+ /// to get the calculations from.
+ /// The
+ /// to get the sections from.
/// The assessment section the scenarios belong to.
- /// Thrown when
+ /// Thrown when any parameter
/// is null.
- public PipingScenariosView(IAssessmentSection assessmentSection)
+ public PipingScenariosView(CalculationGroup calculationGroup, PipingFailureMechanism failureMechanism, IAssessmentSection assessmentSection)
+ : base(calculationGroup, failureMechanism)
{
if (assessmentSection == null)
{
throw new ArgumentNullException(nameof(assessmentSection));
}
- InitializeComponent();
- InitializeDataGridView();
- InitializeListBox();
-
this.assessmentSection = assessmentSection;
-
- pipingFailureMechanismObserver = new Observer(OnPipingFailureMechanismUpdate);
-
- // The concat is needed to observe the input of calculations in child groups.
- pipingInputObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters)));
- pipingCalculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children);
- pipingCalculationObserver = new RecursiveObserver(UpdateScenarioRows, pcg => pcg.Children);
}
- ///
- /// Gets or sets the piping failure mechanism.
- ///
- public PipingFailureMechanism PipingFailureMechanism
+ protected override PipingInput GetCalculationInput(PipingCalculationScenario calculationScenario)
{
- get
- {
- return pipingFailureMechanism;
- }
- set
- {
- pipingFailureMechanism = value;
- pipingFailureMechanismObserver.Observable = pipingFailureMechanism;
-
- UpdateSectionsListBox();
- }
+ return calculationScenario.InputParameters;
}
- public object Data
+ protected override IEnumerable GetScenarioRows(FailureMechanismSection failureMechanismSection)
{
- get
- {
- return calculationGroup;
- }
- set
- {
- calculationGroup = value as CalculationGroup;
+ IEnumerable lineSegments = Math2D.ConvertPointsToLineSegments(failureMechanismSection.Points);
+ IEnumerable pipingCalculations = CalculationGroup
+ .GetCalculations()
+ .OfType()
+ .Where(pc => pc.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments));
- if (calculationGroup != null)
- {
- UpdateDataGridViewDataSource();
- pipingInputObserver.Observable = calculationGroup;
- pipingCalculationObserver.Observable = calculationGroup;
- pipingCalculationGroupObserver.Observable = calculationGroup;
- }
- else
- {
- dataGridViewControl.SetDataSource(null);
- pipingInputObserver.Observable = null;
- pipingCalculationObserver.Observable = null;
- pipingCalculationGroupObserver.Observable = null;
- }
- }
+ return pipingCalculations.Select(pc => new PipingScenarioRow(pc, FailureMechanism, assessmentSection)).ToList();
}
- protected override void Dispose(bool disposing)
+ protected override void InitializeDataGridView()
{
- pipingFailureMechanismObserver.Dispose();
- pipingInputObserver.Dispose();
- pipingCalculationObserver.Dispose();
- pipingCalculationGroupObserver.Dispose();
+ base.InitializeDataGridView();
- if (disposing)
- {
- components?.Dispose();
- }
-
- base.Dispose(disposing);
- }
-
- private void InitializeDataGridView()
- {
- dataGridViewControl.AddCheckBoxColumn(
- nameof(PipingScenarioRow.IsRelevant),
- Resources.PipingCalculationsView_InitializeDataGridView_In_final_rating
- );
- dataGridViewControl.AddTextBoxColumn(
- nameof(PipingScenarioRow.Contribution),
- Resources.PipingCalculationsView_InitializeDataGridView_Contribution
- );
- dataGridViewControl.AddTextBoxColumn(
- nameof(PipingScenarioRow.Name),
- Resources.PipingCalculation_Name_DisplayName
- );
- dataGridViewControl.AddTextBoxColumn(
- nameof(PipingScenarioRow.FailureProbabilityPiping),
- Resources.PipingScenarioView_PipingScenarioRow_FailureProbabilityPiping
- );
- dataGridViewControl.AddTextBoxColumn(
+ DataGridViewControl.AddTextBoxColumn(
nameof(PipingScenarioRow.FailureProbabilityUplift),
Resources.PipingScenarioView_PipingScenarioRow_FailureProbabilityUplift
);
- dataGridViewControl.AddTextBoxColumn(
+ DataGridViewControl.AddTextBoxColumn(
nameof(PipingScenarioRow.FailureProbabilityHeave),
Resources.PipingScenarioView_PipingScenarioRow_FailureProbabilityHeave
);
- dataGridViewControl.AddTextBoxColumn(
+ DataGridViewControl.AddTextBoxColumn(
nameof(PipingScenarioRow.FailureProbabilitySellmeijer),
Resources.PipingScenarioView_PipingScenarioRow_FailureProbabilitySellmeijer
);
}
-
- private void InitializeListBox()
- {
- listBox.DisplayMember = nameof(FailureMechanismSection.Name);
- listBox.SelectedValueChanged += ListBoxOnSelectedValueChanged;
- }
-
- private void UpdateDataGridViewDataSource()
- {
- var failureMechanismSection = listBox.SelectedItem as FailureMechanismSection;
- if (failureMechanismSection == null || calculationGroup == null)
- {
- dataGridViewControl.SetDataSource(null);
- return;
- }
-
- IEnumerable lineSegments = Math2D.ConvertPointsToLineSegments(failureMechanismSection.Points);
- IEnumerable pipingCalculations = calculationGroup
- .GetCalculations()
- .OfType()
- .Where(pc => pc.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments));
-
- pipingScenarioRows = pipingCalculations.Select(pc => new PipingScenarioRow(pc, pipingFailureMechanism, assessmentSection)).ToList();
- dataGridViewControl.SetDataSource(pipingScenarioRows);
- }
-
- private void UpdateScenarioRows()
- {
- pipingScenarioRows.ForEachElementDo(row => row.Update());
- dataGridViewControl.RefreshDataGridView();
- }
-
- #region Event handling
-
- private void ListBoxOnSelectedValueChanged(object sender, EventArgs e)
- {
- UpdateDataGridViewDataSource();
- }
-
- private void OnPipingFailureMechanismUpdate()
- {
- UpdateSectionsListBox();
- }
-
- private void UpdateSectionsListBox()
- {
- listBox.Items.Clear();
-
- if (pipingFailureMechanism != null && pipingFailureMechanism.Sections.Any())
- {
- listBox.Items.AddRange(pipingFailureMechanism.Sections.Cast().ToArray());
- listBox.SelectedItem = pipingFailureMechanism.Sections.First();
- }
- }
-
- #endregion
}
}
\ No newline at end of file
Index: Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs
===================================================================
diff -u -rebd97f729267dd5b9c807ea3e1ecd843117d43ed -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision ebd97f729267dd5b9c807ea3e1ecd843117d43ed)
+++ Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -262,8 +262,7 @@
GetViewName = (view, context) => RiskeerCommonFormsResources.Scenarios_DisplayName,
Image = RiskeerCommonFormsResources.ScenariosIcon,
CloseForData = ClosePipingScenariosViewForData,
- CreateInstance = context => new PipingScenariosView(context.AssessmentSection),
- AfterCreate = (view, context) => { view.PipingFailureMechanism = context.FailureMechanism; }
+ CreateInstance = context => new PipingScenariosView(context.WrappedData, context.FailureMechanism, context.AssessmentSection),
};
yield return new ViewInfo, FailureMechanismSectionsProbabilityAssessmentView>
@@ -469,7 +468,7 @@
.FirstOrDefault();
}
- return pipingFailureMechanism != null && ReferenceEquals(view.Data, pipingFailureMechanism.CalculationsGroup);
+ return pipingFailureMechanism != null && ReferenceEquals(view.CalculationGroup, pipingFailureMechanism.CalculationsGroup);
}
private static bool ClosePipingInputViewForData(PipingInputView view, object o)
Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenarioRowTest.cs
===================================================================
diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenarioRowTest.cs (.../PipingScenarioRowTest.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea)
+++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenarioRowTest.cs (.../PipingScenarioRowTest.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -20,14 +20,13 @@
// All rights reserved.
using System;
-using Core.Common.Base;
-using Core.Common.Base.Data;
using Core.Common.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.TestUtil;
-using Riskeer.Common.Forms.Helpers;
+using Riskeer.Common.Forms.TypeConverters;
+using Riskeer.Common.Forms.Views;
using Riskeer.Piping.Data;
using Riskeer.Piping.Data.TestUtil;
using Riskeer.Piping.Forms.Views;
@@ -38,23 +37,6 @@
public class PipingScenarioRowTest
{
[Test]
- public void Constructor_CalculationNull_ThrowsArgumentNullException()
- {
- // Setup
- var mocks = new MockRepository();
- var assessmentSection = mocks.Stub();
- mocks.ReplayAll();
-
- // Call
- TestDelegate test = () => new PipingScenarioRow(null, new PipingFailureMechanism(), assessmentSection);
-
- // Assert
- string paramName = Assert.Throws(test).ParamName;
- Assert.AreEqual("calculation", paramName);
- mocks.VerifyAll();
- }
-
- [Test]
public void Constructor_FailureMechanismNull_ThrowsArgumentNullException()
{
// Setup
@@ -65,11 +47,11 @@
var calculation = new PipingCalculationScenario(new GeneralPipingInput());
// Call
- TestDelegate test = () => new PipingScenarioRow(calculation, null, assessmentSection);
+ void Call() => new PipingScenarioRow(calculation, null, assessmentSection);
// Assert
- string paramName = Assert.Throws(test).ParamName;
- Assert.AreEqual("failureMechanism", paramName);
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
mocks.VerifyAll();
}
@@ -80,15 +62,15 @@
var calculation = new PipingCalculationScenario(new GeneralPipingInput());
// Call
- TestDelegate call = () => new PipingScenarioRow(calculation, new PipingFailureMechanism(), null);
+ void Call() => new PipingScenarioRow(calculation, new PipingFailureMechanism(), null);
// Assert
- var exception = Assert.Throws(call);
+ var exception = Assert.Throws(Call);
Assert.AreEqual("assessmentSection", exception.ParamName);
}
[Test]
- public void Constructor_CalculationWithOutput_ExpectedValues()
+ public void Constructor_ExpectedValues()
{
// Setup
var failureMechanism = new PipingFailureMechanism();
@@ -97,120 +79,69 @@
IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(failureMechanism, mocks);
mocks.ReplayAll();
- const string name = "Test";
- var random = new Random(21);
- bool isRelevant = random.NextBoolean();
- RoundedDouble contribution = random.NextRoundedDouble();
+ var calculation = new PipingCalculationScenario(new GeneralPipingInput());
- var calculation = new PipingCalculationScenario(new GeneralPipingInput())
- {
- Name = name,
- IsRelevant = isRelevant,
- Contribution = contribution,
- Output = PipingOutputTestFactory.Create()
- };
-
// Call
var row = new PipingScenarioRow(calculation, failureMechanism, assessmentSection);
// Assert
- DerivedPipingOutput expectedDerivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
+ Assert.IsInstanceOf>(row);
+ Assert.AreSame(calculation, row.CalculationScenario);
- Assert.AreSame(calculation, row.Calculation);
- Assert.AreEqual(name, row.Name);
- Assert.AreEqual(isRelevant, row.IsRelevant);
- Assert.AreEqual(2, row.Contribution.NumberOfDecimalPlaces);
- Assert.AreEqual(contribution * 100, row.Contribution, row.Contribution.GetAccuracy());
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.PipingProbability), row.FailureProbabilityPiping);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.UpliftProbability), row.FailureProbabilityUplift);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.HeaveProbability), row.FailureProbabilityHeave);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.SellmeijerProbability), row.FailureProbabilitySellmeijer);
- mocks.VerifyAll();
+ TestHelper.AssertTypeConverter(
+ nameof(PipingScenarioRow.FailureProbabilityUplift));
+ TestHelper.AssertTypeConverter(
+ nameof(PipingScenarioRow.FailureProbabilityHeave));
+ TestHelper.AssertTypeConverter(
+ nameof(PipingScenarioRow.FailureProbabilitySellmeijer));
}
[Test]
- public void Constructor_CalculationWithoutOutput_ExpectedValues()
+ public void Constructor_CalculationWithOutput_ExpectedValues()
{
// Setup
+ var failureMechanism = new PipingFailureMechanism();
+
var mocks = new MockRepository();
- var assessmentSection = mocks.Stub();
+ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(failureMechanism, mocks);
mocks.ReplayAll();
- const string name = "Test";
- var random = new Random(21);
- bool isRelevant = random.NextBoolean();
- RoundedDouble contribution = random.NextRoundedDouble();
-
var calculation = new PipingCalculationScenario(new GeneralPipingInput())
{
- Name = name,
- IsRelevant = isRelevant,
- Contribution = contribution
+ Output = PipingOutputTestFactory.Create()
};
// Call
- var row = new PipingScenarioRow(calculation, new PipingFailureMechanism(), assessmentSection);
+ var row = new PipingScenarioRow(calculation, failureMechanism, assessmentSection);
// Assert
- Assert.AreSame(calculation, row.Calculation);
- Assert.AreEqual(name, row.Name);
- Assert.AreEqual(isRelevant, row.IsRelevant);
- Assert.AreEqual(2, row.Contribution.NumberOfDecimalPlaces);
- Assert.AreEqual(contribution * 100, row.Contribution, row.Contribution.GetAccuracy());
- Assert.AreEqual("-", row.FailureProbabilityPiping);
- Assert.AreEqual("-", row.FailureProbabilityUplift);
- Assert.AreEqual("-", row.FailureProbabilityHeave);
- Assert.AreEqual("-", row.FailureProbabilitySellmeijer);
- mocks.VerifyAll();
- }
+ DerivedPipingOutput expectedDerivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
- [Test]
- [TestCase(false)]
- [TestCase(true)]
- public void IsRelevant_AlwaysOnChange_NotifyObserversAndCalculationPropertyChanged(bool newValue)
- {
- // Setup
- var mocks = new MockRepository();
- var assessmentSection = mocks.Stub();
- var observer = mocks.StrictMock();
- observer.Expect(o => o.UpdateObserver());
- mocks.ReplayAll();
-
- var calculation = new PipingCalculationScenario(new GeneralPipingInput());
- calculation.Attach(observer);
-
- var row = new PipingScenarioRow(calculation, new PipingFailureMechanism(), assessmentSection);
-
- // Call
- row.IsRelevant = newValue;
-
- // Assert
- Assert.AreEqual(newValue, calculation.IsRelevant);
+ Assert.AreEqual(expectedDerivedOutput.PipingProbability, row.FailureProbability);
+ Assert.AreEqual(expectedDerivedOutput.UpliftProbability, row.FailureProbabilityUplift);
+ Assert.AreEqual(expectedDerivedOutput.HeaveProbability, row.FailureProbabilityHeave);
+ Assert.AreEqual(expectedDerivedOutput.SellmeijerProbability, row.FailureProbabilitySellmeijer);
mocks.VerifyAll();
}
[Test]
- public void Contribution_AlwaysOnChange_NotifyObserverAndCalculationPropertyChanged()
+ public void Constructor_CalculationWithoutOutput_ExpectedValues()
{
// Setup
var mocks = new MockRepository();
var assessmentSection = mocks.Stub();
- var observer = mocks.StrictMock();
- observer.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
- double newValue = new Random(21).NextDouble(0, 100);
-
var calculation = new PipingCalculationScenario(new GeneralPipingInput());
- calculation.Attach(observer);
+ // Call
var row = new PipingScenarioRow(calculation, new PipingFailureMechanism(), assessmentSection);
- // Call
- row.Contribution = (RoundedDouble) newValue;
-
// Assert
- Assert.AreEqual(newValue / 100, calculation.Contribution, calculation.Contribution.GetAccuracy());
+ Assert.IsNaN(row.FailureProbability);
+ Assert.IsNaN(row.FailureProbabilityUplift);
+ Assert.IsNaN(row.FailureProbabilityHeave);
+ Assert.IsNaN(row.FailureProbabilitySellmeijer);
mocks.VerifyAll();
}
@@ -229,21 +160,21 @@
var row = new PipingScenarioRow(calculation, failureMechanism, assessmentSection);
// Precondition
- Assert.AreEqual("-", row.FailureProbabilityPiping);
- Assert.AreEqual("-", row.FailureProbabilityUplift);
- Assert.AreEqual("-", row.FailureProbabilityHeave);
- Assert.AreEqual("-", row.FailureProbabilitySellmeijer);
+ Assert.IsNaN(row.FailureProbability);
+ Assert.IsNaN(row.FailureProbabilityUplift);
+ Assert.IsNaN(row.FailureProbabilityHeave);
+ Assert.IsNaN(row.FailureProbabilitySellmeijer);
// When
calculation.Output = PipingOutputTestFactory.Create();
row.Update();
// Then
DerivedPipingOutput expectedDerivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.PipingProbability), row.FailureProbabilityPiping);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.UpliftProbability), row.FailureProbabilityUplift);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.HeaveProbability), row.FailureProbabilityHeave);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.SellmeijerProbability), row.FailureProbabilitySellmeijer);
+ Assert.AreEqual(expectedDerivedOutput.PipingProbability, row.FailureProbability);
+ Assert.AreEqual(expectedDerivedOutput.UpliftProbability, row.FailureProbabilityUplift);
+ Assert.AreEqual(expectedDerivedOutput.HeaveProbability, row.FailureProbabilityHeave);
+ Assert.AreEqual(expectedDerivedOutput.SellmeijerProbability, row.FailureProbabilitySellmeijer);
mocks.VerifyAll();
}
@@ -266,20 +197,20 @@
// Precondition
DerivedPipingOutput expectedDerivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.PipingProbability), row.FailureProbabilityPiping);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.UpliftProbability), row.FailureProbabilityUplift);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.HeaveProbability), row.FailureProbabilityHeave);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.SellmeijerProbability), row.FailureProbabilitySellmeijer);
+ Assert.AreEqual(expectedDerivedOutput.PipingProbability, row.FailureProbability);
+ Assert.AreEqual(expectedDerivedOutput.UpliftProbability, row.FailureProbabilityUplift);
+ Assert.AreEqual(expectedDerivedOutput.HeaveProbability, row.FailureProbabilityHeave);
+ Assert.AreEqual(expectedDerivedOutput.SellmeijerProbability, row.FailureProbabilitySellmeijer);
// When
calculation.Output = null;
row.Update();
// Then
- Assert.AreEqual("-", row.FailureProbabilityPiping);
- Assert.AreEqual("-", row.FailureProbabilityUplift);
- Assert.AreEqual("-", row.FailureProbabilityHeave);
- Assert.AreEqual("-", row.FailureProbabilitySellmeijer);
+ Assert.IsNaN(row.FailureProbability);
+ Assert.IsNaN(row.FailureProbabilityUplift);
+ Assert.IsNaN(row.FailureProbabilityHeave);
+ Assert.IsNaN(row.FailureProbabilitySellmeijer);
mocks.VerifyAll();
}
@@ -302,10 +233,10 @@
// Precondition
DerivedPipingOutput expectedDerivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.PipingProbability), row.FailureProbabilityPiping);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.UpliftProbability), row.FailureProbabilityUplift);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.HeaveProbability), row.FailureProbabilityHeave);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.SellmeijerProbability), row.FailureProbabilitySellmeijer);
+ Assert.AreEqual(expectedDerivedOutput.PipingProbability, row.FailureProbability);
+ Assert.AreEqual(expectedDerivedOutput.UpliftProbability, row.FailureProbabilityUplift);
+ Assert.AreEqual(expectedDerivedOutput.HeaveProbability, row.FailureProbabilityHeave);
+ Assert.AreEqual(expectedDerivedOutput.SellmeijerProbability, row.FailureProbabilitySellmeijer);
var random = new Random(11);
@@ -315,10 +246,10 @@
// Then
DerivedPipingOutput newExpectedDerivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(newExpectedDerivedOutput.PipingProbability), row.FailureProbabilityPiping);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(newExpectedDerivedOutput.UpliftProbability), row.FailureProbabilityUplift);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(newExpectedDerivedOutput.HeaveProbability), row.FailureProbabilityHeave);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(newExpectedDerivedOutput.SellmeijerProbability), row.FailureProbabilitySellmeijer);
+ Assert.AreEqual(newExpectedDerivedOutput.PipingProbability, row.FailureProbability);
+ Assert.AreEqual(newExpectedDerivedOutput.UpliftProbability, row.FailureProbabilityUplift);
+ Assert.AreEqual(newExpectedDerivedOutput.HeaveProbability, row.FailureProbabilityHeave);
+ Assert.AreEqual(newExpectedDerivedOutput.SellmeijerProbability, row.FailureProbabilitySellmeijer);
mocks.VerifyAll();
}
}
Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs
===================================================================
diff -u -r56d072b8342f3e54ba89124ab918bd1529e257a3 -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs (.../PipingScenariosViewTest.cs) (revision 56d072b8342f3e54ba89124ab918bd1529e257a3)
+++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs (.../PipingScenariosViewTest.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -21,12 +21,9 @@
using System;
using System.Globalization;
-using System.Linq;
using System.Windows.Forms;
-using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Base.Geometry;
-using Core.Common.Controls.Views;
using NUnit.Extensions.Forms;
using NUnit.Framework;
using Rhino.Mocks;
@@ -35,6 +32,7 @@
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Common.Data.TestUtil;
using Riskeer.Common.Forms.Helpers;
+using Riskeer.Common.Forms.Views;
using Riskeer.Piping.Data;
using Riskeer.Piping.Data.TestUtil;
using Riskeer.Piping.Forms.Views;
@@ -43,7 +41,7 @@
namespace Riskeer.Piping.Forms.Test.Views
{
[TestFixture]
- public class PipingScenariosViewTest : NUnitFormTest
+ public class PipingScenariosViewTest
{
private const int isRelevantColumnIndex = 0;
private const int contributionColumnIndex = 1;
@@ -54,14 +52,26 @@
private const int failureProbabilitySellmeijerColumnIndex = 6;
private Form testForm;
+ [SetUp]
+ public void Setup()
+ {
+ testForm = new Form();
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ testForm.Dispose();
+ }
+
[Test]
public void Constructor_AssessmentSectionNull_ThrowsArgumentNullException()
{
// Call
- TestDelegate call = () => new PipingScenariosView(null);
+ void Call() => new PipingScenariosView(new CalculationGroup(), new PipingFailureMechanism(), null);
// Assert
- var exception = Assert.Throws(call);
+ var exception = Assert.Throws(Call);
Assert.AreEqual("assessmentSection", exception.ParamName);
}
@@ -73,14 +83,14 @@
var assessmentSection = mocks.Stub();
mocks.ReplayAll();
+ var calculationGroup = new CalculationGroup();
+
// Call
- using (var pipingScenarioView = new PipingScenariosView(assessmentSection))
+ using (var pipingScenarioView = new PipingScenariosView(calculationGroup, new PipingFailureMechanism(), assessmentSection))
{
// Assert
- Assert.IsInstanceOf(pipingScenarioView);
- Assert.IsInstanceOf(pipingScenarioView);
- Assert.IsNull(pipingScenarioView.Data);
- Assert.IsNull(pipingScenarioView.PipingFailureMechanism);
+ Assert.IsInstanceOf>(pipingScenarioView);
+ Assert.AreSame(calculationGroup, pipingScenarioView.Data);
}
mocks.VerifyAll();
@@ -89,154 +99,22 @@
[Test]
public void Constructor_DataGridViewCorrectlyInitialized()
{
- // Setup & Call
- ShowPipingScenarioView();
-
- var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
+ // Call
+ ShowPipingScenarioView(new CalculationGroup(), new PipingFailureMechanism());
+
// Assert
- Assert.IsFalse(dataGridView.AutoGenerateColumns);
+ var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
Assert.AreEqual(7, dataGridView.ColumnCount);
-
- foreach (DataGridViewComboBoxColumn column in dataGridView.Columns.OfType())
- {
- Assert.AreEqual("This", column.ValueMember);
- Assert.AreEqual("DisplayName", column.DisplayMember);
- }
+ Assert.AreEqual("In oordeel", dataGridView.Columns[isRelevantColumnIndex].HeaderText);
+ Assert.AreEqual("Bijdrage aan\r\nscenario\r\n[%]", dataGridView.Columns[contributionColumnIndex].HeaderText);
+ Assert.AreEqual("Naam", dataGridView.Columns[nameColumnIndex].HeaderText);
+ Assert.AreEqual("Faalkans\r\n[1/jaar]", dataGridView.Columns[failureProbabilityPipingColumnIndex].HeaderText);
+ Assert.AreEqual("Kans op\r\nopbarsten\r\n[1/jaar]", dataGridView.Columns[failureProbabilityUpliftColumnIndex].HeaderText);
+ Assert.AreEqual("Kans op\r\nheave\r\n[1/jaar]", dataGridView.Columns[failureProbabilityHeaveColumnIndex].HeaderText);
+ Assert.AreEqual("Kans op\r\nterugschrijdende erosie\r\n[1/jaar]", dataGridView.Columns[failureProbabilitySellmeijerColumnIndex].HeaderText);
}
[Test]
- public void Constructor_DataGridViewControlColumnHeadersCorrectlyInitialized_()
- {
- // Call
- using (ShowPipingScenarioView())
- {
- // Assert
- var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
- Assert.AreEqual(7, dataGridView.ColumnCount);
- Assert.AreEqual("In oordeel", dataGridView.Columns[isRelevantColumnIndex].HeaderText);
- Assert.AreEqual("Bijdrage aan\r\nscenario\r\n[%]", dataGridView.Columns[contributionColumnIndex].HeaderText);
- Assert.AreEqual("Naam", dataGridView.Columns[nameColumnIndex].HeaderText);
- Assert.AreEqual("Faalkans\r\n[1/jaar]", dataGridView.Columns[failureProbabilityPipingColumnIndex].HeaderText);
- Assert.AreEqual("Kans op\r\nopbarsten\r\n[1/jaar]", dataGridView.Columns[failureProbabilityUpliftColumnIndex].HeaderText);
- Assert.AreEqual("Kans op\r\nheave\r\n[1/jaar]", dataGridView.Columns[failureProbabilityHeaveColumnIndex].HeaderText);
- Assert.AreEqual("Kans op\r\nterugschrijdende erosie\r\n[1/jaar]", dataGridView.Columns[failureProbabilitySellmeijerColumnIndex].HeaderText);
- }
- }
-
- [Test]
- public void Constructor_ListBoxCorrectlyInitialized()
- {
- // Setup & Call
- ShowPipingScenarioView();
-
- var listBox = (ListBox) new ControlTester("listBox").TheObject;
-
- // Assert
- Assert.AreEqual(0, listBox.Items.Count);
- }
-
- [Test]
- public void Data_SetToNull_DoesNotThrow()
- {
- // Setup
- PipingScenariosView pipingScenarioView = ShowPipingScenarioView();
-
- // Call
- var testDelegate = new TestDelegate(() => pipingScenarioView.Data = null);
-
- // Assert
- Assert.DoesNotThrow(testDelegate);
- }
-
- [Test]
- public void PipingFailureMechanism_PipingFailureMechanismWithSections_SectionsListBoxCorrectlyInitialized()
- {
- // Setup
- var failureMechanism = new PipingFailureMechanism();
- var failureMechanismSection1 = new FailureMechanismSection("Section 1", new[]
- {
- new Point2D(0.0, 0.0),
- new Point2D(5.0, 0.0)
- });
- var failureMechanismSection2 = new FailureMechanismSection("Section 2", new[]
- {
- new Point2D(5.0, 0.0),
- new Point2D(10.0, 0.0)
- });
- var failureMechanismSection3 = new FailureMechanismSection("Section 3", new[]
- {
- new Point2D(10.0, 0.0),
- new Point2D(15.0, 0.0)
- });
-
- FailureMechanismTestHelper.SetSections(failureMechanism, new[]
- {
- failureMechanismSection1,
- failureMechanismSection2,
- failureMechanismSection3
- });
-
- PipingScenariosView pipingScenarioView = ShowPipingScenarioView();
-
- // Call
- pipingScenarioView.PipingFailureMechanism = failureMechanism;
-
- // Assert
- var listBox = (ListBox) new ControlTester("listBox").TheObject;
- Assert.AreEqual(3, listBox.Items.Count);
- Assert.AreSame(failureMechanismSection1, listBox.Items[0]);
- Assert.AreSame(failureMechanismSection2, listBox.Items[1]);
- Assert.AreSame(failureMechanismSection3, listBox.Items[2]);
- }
-
- [Test]
- public void GivenPipingScenariosViewWithPipingFailureMechanism_WhenSectionsAddedAndPipingFailureMechanismNotified_ThenSectionsListBoxCorrectlyUpdated()
- {
- // Given
- var failureMechanism = new PipingFailureMechanism();
- var failureMechanismSection1 = new FailureMechanismSection("Section 1", new[]
- {
- new Point2D(0.0, 0.0),
- new Point2D(5.0, 0.0)
- });
- var failureMechanismSection2 = new FailureMechanismSection("Section 2", new[]
- {
- new Point2D(5.0, 0.0),
- new Point2D(10.0, 0.0)
- });
- var failureMechanismSection3 = new FailureMechanismSection("Section 3", new[]
- {
- new Point2D(10.0, 0.0),
- new Point2D(15.0, 0.0)
- });
-
- PipingScenariosView pipingScenarioView = ShowPipingScenarioView();
- pipingScenarioView.PipingFailureMechanism = failureMechanism;
-
- var listBox = (ListBox) new ControlTester("listBox").TheObject;
-
- // Precondition
- Assert.AreEqual(0, listBox.Items.Count);
-
- FailureMechanismTestHelper.SetSections(failureMechanism, new[]
- {
- failureMechanismSection1,
- failureMechanismSection2,
- failureMechanismSection3
- });
-
- // When
- failureMechanism.NotifyObservers();
-
- // Then
- Assert.AreEqual(3, listBox.Items.Count);
- Assert.AreSame(failureMechanismSection1, listBox.Items[0]);
- Assert.AreSame(failureMechanismSection2, listBox.Items[1]);
- Assert.AreSame(failureMechanismSection3, listBox.Items[2]);
- }
-
- [Test]
public void PipingScenarioView_CalculationsWithAllDataSet_DataGridViewCorrectlyInitialized()
{
// Setup & Call
@@ -269,150 +147,8 @@
Assert.AreEqual(ProbabilityFormattingHelper.Format(0.027777778), cells[failureProbabilitySellmeijerColumnIndex].FormattedValue);
}
- [Test]
- public void PipingScenarioView_ContributionValueInvalid_ShowsErrorTooltip()
+ private void ShowFullyConfiguredPipingScenarioView()
{
- // Setup
- ShowFullyConfiguredPipingScenarioView();
-
- var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
- // Call
- dataGridView.Rows[0].Cells[contributionColumnIndex].Value = "test";
-
- // Assert
- Assert.AreEqual("De tekst moet een getal zijn.", dataGridView.Rows[0].ErrorText);
- }
-
- [Test]
- [TestCase(1)]
- [TestCase(1e-6)]
- [TestCase(1e+6)]
- [TestCase(14.3)]
- public void FailureMechanismResultView_EditValueValid_DoNotShowErrorToolTipAndEditValue(double newValue)
- {
- // Setup
- ShowFullyConfiguredPipingScenarioView();
-
- var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
- // Call
- dataGridView.Rows[0].Cells[contributionColumnIndex].Value = (RoundedDouble) newValue;
-
- // Assert
- Assert.IsEmpty(dataGridView.Rows[0].ErrorText);
- }
-
- [Test]
- [TestCase(isRelevantColumnIndex, true)]
- [TestCase(contributionColumnIndex, 30.0)]
- public void PipingScenarioView_EditingPropertyViaDataGridView_ObserversCorrectlyNotified(int cellIndex, object newValue)
- {
- // Setup
- var mocks = new MockRepository();
- var pipingCalculationObserver = mocks.StrictMock();
- var pipingCalculationInputObserver = mocks.StrictMock();
- pipingCalculationObserver.Expect(o => o.UpdateObserver());
-
- mocks.ReplayAll();
-
- PipingScenariosView pipingCalculationView = ShowFullyConfiguredPipingScenarioView();
-
- var data = (CalculationGroup) pipingCalculationView.Data;
- var pipingCalculation = (PipingCalculationScenario) data.Children.First();
-
- pipingCalculation.Attach(pipingCalculationObserver);
- pipingCalculation.InputParameters.Attach(pipingCalculationInputObserver);
-
- var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
- // Call
- dataGridView.Rows[0].Cells[cellIndex].Value = newValue is double ? (RoundedDouble) (double) newValue : newValue;
-
- // Assert
- mocks.VerifyAll();
- }
-
- [Test]
- public void GivenPipingScenarioView_WhenFailureMechanismNotifiesObserver_ThenViewUpdated()
- {
- // Given
- using (PipingScenariosView view = ShowFullyConfiguredPipingScenarioView())
- {
- var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
- PipingScenarioRow[] sectionResultRows = dataGridView.Rows.Cast()
- .Select(r => r.DataBoundItem)
- .Cast()
- .ToArray();
-
- // When
- view.PipingFailureMechanism.PipingProbabilityAssessmentInput.A = 0.01;
- view.PipingFailureMechanism.NotifyObservers();
-
- // Then
- PipingScenarioRow[] updatedRows = dataGridView.Rows.Cast()
- .Select(r => r.DataBoundItem)
- .Cast()
- .ToArray();
-
- CollectionAssert.AreNotEquivalent(sectionResultRows, updatedRows);
- }
- }
-
- [Test]
- public void GivenPipingScenarioView_WhenCalculationNotifiesObserver_ThenViewUpdated()
- {
- // Given
- using (ShowFullyConfiguredPipingScenarioView())
- {
- var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
- var refreshed = 0;
- dataGridView.Invalidated += (sender, args) => refreshed++;
-
- DataGridViewRowCollection rows = dataGridView.Rows;
- DataGridViewRow calculationRow = rows[1];
- PipingCalculationScenario calculation = ((PipingScenarioRow) calculationRow.DataBoundItem).Calculation;
-
- // Precondition
- DataGridViewCellCollection cells = calculationRow.Cells;
- Assert.AreEqual(7, cells.Count);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(2.425418e-4), cells[failureProbabilityPipingColumnIndex].FormattedValue);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(2.425418e-4), cells[failureProbabilityUpliftColumnIndex].FormattedValue);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(0.038461838), cells[failureProbabilityHeaveColumnIndex].FormattedValue);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(0.027777778), cells[failureProbabilitySellmeijerColumnIndex].FormattedValue);
-
- // When
- calculation.ClearOutput();
- calculation.NotifyObservers();
-
- // Then
- Assert.AreEqual(1, refreshed);
-
- Assert.AreEqual("-", cells[failureProbabilityPipingColumnIndex].FormattedValue);
- Assert.AreEqual("-".ToString(CultureInfo.CurrentCulture), cells[failureProbabilityUpliftColumnIndex].FormattedValue);
- Assert.AreEqual("-".ToString(CultureInfo.CurrentCulture), cells[failureProbabilityHeaveColumnIndex].FormattedValue);
- Assert.AreEqual("-".ToString(CultureInfo.CurrentCulture), cells[failureProbabilitySellmeijerColumnIndex].FormattedValue);
- }
- }
-
- public override void Setup()
- {
- base.Setup();
-
- testForm = new Form();
- }
-
- public override void TearDown()
- {
- base.TearDown();
-
- testForm.Dispose();
- }
-
- private PipingScenariosView ShowFullyConfiguredPipingScenarioView()
- {
var surfaceLine1 = new PipingSurfaceLine("Surface line 1")
{
ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0)
@@ -453,9 +189,7 @@
})
});
- PipingScenariosView pipingScenarioView = ShowPipingScenarioView();
-
- pipingScenarioView.Data = new CalculationGroup
+ var calculationGroup = new CalculationGroup
{
Children =
{
@@ -499,19 +233,15 @@
}
};
- pipingScenarioView.PipingFailureMechanism = failureMechanism;
-
- return pipingScenarioView;
+ ShowPipingScenarioView(calculationGroup, failureMechanism);
}
- private PipingScenariosView ShowPipingScenarioView()
+ private void ShowPipingScenarioView(CalculationGroup calculationGroup, PipingFailureMechanism failureMechanism)
{
- var pipingScenarioView = new PipingScenariosView(new AssessmentSectionStub());
+ var pipingScenarioView = new PipingScenariosView(calculationGroup, failureMechanism, new AssessmentSectionStub());
testForm.Controls.Add(pipingScenarioView);
testForm.Show();
-
- return pipingScenarioView;
}
}
}
\ No newline at end of file
Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/PipingScenariosViewInfoTest.cs
===================================================================
diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -r9f6481bc31f2992b06a7ce74c7f10ca09a31b625
--- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/PipingScenariosViewInfoTest.cs (.../PipingScenariosViewInfoTest.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea)
+++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/ViewInfos/PipingScenariosViewInfoTest.cs (.../PipingScenariosViewInfoTest.cs) (revision 9f6481bc31f2992b06a7ce74c7f10ca09a31b625)
@@ -98,18 +98,12 @@
public void CloseForData_AssessmentSectionRemovedWithoutPipingFailureMechanism_ReturnsFalse()
{
// Setup
- var pipingCalculationsGroup = new CalculationGroup();
-
var assessmentSection = mocks.Stub();
assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new IFailureMechanism[0]);
-
mocks.ReplayAll();
- using (var view = new PipingScenariosView(assessmentSection)
+ using (var view = new PipingScenariosView(new CalculationGroup(), new PipingFailureMechanism(), assessmentSection))
{
- Data = pipingCalculationsGroup
- })
- {
// Call
bool closeForData = info.CloseForData(view, assessmentSection);
@@ -124,22 +118,19 @@
public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnsFalse()
{
// Setup
- var pipingFailureMechanism = new PipingFailureMechanism();
- var pipingCalculationsGroup = new CalculationGroup();
+ var failureMechanism = new PipingFailureMechanism();
+ var calculationGroup = new CalculationGroup();
var assessmentSection = mocks.Stub();
assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[]
{
- pipingFailureMechanism
+ failureMechanism
});
mocks.ReplayAll();
- using (var view = new PipingScenariosView(assessmentSection)
+ using (var view = new PipingScenariosView(calculationGroup, failureMechanism, assessmentSection))
{
- Data = pipingCalculationsGroup
- })
- {
// Call
bool closeForData = info.CloseForData(view, assessmentSection);
@@ -154,21 +145,17 @@
public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue()
{
// Setup
- var pipingFailureMechanism = new PipingFailureMechanism();
+ var failureMechanism = new PipingFailureMechanism();
var assessmentSection = mocks.Stub();
assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[]
{
- pipingFailureMechanism
+ failureMechanism
});
-
mocks.ReplayAll();
- using (var view = new PipingScenariosView(assessmentSection)
+ using (var view = new PipingScenariosView(failureMechanism.CalculationsGroup, failureMechanism, assessmentSection))
{
- Data = pipingFailureMechanism.CalculationsGroup
- })
- {
// Call
bool closeForData = info.CloseForData(view, assessmentSection);
@@ -186,11 +173,8 @@
var assessmentSection = mocks.Stub();
mocks.ReplayAll();
- using (var view = new PipingScenariosView(assessmentSection)
+ using (var view = new PipingScenariosView(new CalculationGroup(), new PipingFailureMechanism(), assessmentSection))
{
- Data = new CalculationGroup()
- })
- {
var failureMechanism = new PipingFailureMechanism();
// Call
@@ -212,11 +196,8 @@
var failureMechanism = new PipingFailureMechanism();
- using (var view = new PipingScenariosView(assessmentSection)
+ using (var view = new PipingScenariosView(failureMechanism.CalculationsGroup, failureMechanism, assessmentSection))
{
- Data = failureMechanism.CalculationsGroup
- })
- {
// Call
bool closeForData = info.CloseForData(view, failureMechanism);
@@ -237,11 +218,8 @@
var failureMechanism = new PipingFailureMechanism();
var failureMechanismContext = new PipingFailureMechanismContext(new PipingFailureMechanism(), assessmentSection);
- using (var view = new PipingScenariosView(assessmentSection)
+ using (var view = new PipingScenariosView(failureMechanism.CalculationsGroup, failureMechanism, assessmentSection))
{
- Data = failureMechanism.CalculationsGroup
- })
- {
// Call
bool closeForData = info.CloseForData(view, failureMechanismContext);
@@ -262,11 +240,8 @@
var failureMechanism = new PipingFailureMechanism();
var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection);
- using (var view = new PipingScenariosView(assessmentSection)
+ using (var view = new PipingScenariosView(failureMechanism.CalculationsGroup, failureMechanism, assessmentSection))
{
- Data = failureMechanism.CalculationsGroup
- })
- {
// Call
bool closeForData = info.CloseForData(view, failureMechanismContext);
@@ -278,29 +253,6 @@
}
[Test]
- public void AfterCreate_Always_SetsSpecificPropertiesToView()
- {
- // Setup
- var assessmentSection = mocks.Stub();
- mocks.ReplayAll();
-
- var pipingFailureMechanism = new PipingFailureMechanism();
- var pipingCalculationsGroup = new CalculationGroup();
- var pipingScenariosContext = new PipingScenariosContext(pipingCalculationsGroup, pipingFailureMechanism, assessmentSection);
-
- using (var view = new PipingScenariosView(assessmentSection))
- {
- // Call
- info.AfterCreate(view, pipingScenariosContext);
-
- // Assert
- Assert.AreSame(pipingFailureMechanism, view.PipingFailureMechanism);
- }
-
- mocks.VerifyAll();
- }
-
- [Test]
public void CreateInstance_WithContext_ReturnsView()
{
// Setup