Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs
===================================================================
diff -u -rae221df798313584619c15c5504d1d19c7bfdcba -rf3dd442bed9a828039f786a3ab21769f4acd6d7a
--- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision ae221df798313584619c15c5504d1d19c7bfdcba)
+++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision f3dd442bed9a828039f786a3ab21769f4acd6d7a)
@@ -108,7 +108,7 @@
protected override PipingFailureMechanismSectionResultRow CreateFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult)
{
return new PipingFailureMechanismSectionResultRow(
- sectionResult, CreateCalculateStrategy(sectionResult),
+ sectionResult, CreateCalculateStrategy(sectionResult), FailureMechanism, assessmentSection,
new PipingFailureMechanismSectionResultRow.ConstructionProperties
{
InitialFailureMechanismResultIndex = initialFailureMechanismResultIndex,
Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs
===================================================================
diff -u -r297d01e1742867ded4f512269a9b309e664572af -rf3dd442bed9a828039f786a3ab21769f4acd6d7a
--- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision 297d01e1742867ded4f512269a9b309e664572af)
+++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision f3dd442bed9a828039f786a3ab21769f4acd6d7a)
@@ -22,6 +22,7 @@
using System;
using System.ComponentModel;
using Core.Common.Controls.DataGrid;
+using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Common.Forms.Helpers;
using Riskeer.Common.Forms.TypeConverters;
@@ -45,18 +46,24 @@
private readonly int refinedSectionProbabilityIndex;
private readonly IPipingFailureMechanismSectionResultCalculateProbabilityStrategy calculateProbabilityStrategy;
+ private readonly PipingFailureMechanism failureMechanism;
+ private readonly IAssessmentSection assessmentSection;
///
/// Creates a new instance of .
///
/// The that is
/// the source of this row.
/// The strategy used to calculate probabilities.
+ /// The failure mechanism the section result belongs to.
+ /// The assessment section the section result belongs to.
/// The property values required to create an instance of
/// .
/// Throw when any parameter is null.
internal PipingFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult,
IPipingFailureMechanismSectionResultCalculateProbabilityStrategy calculateProbabilityStrategy,
+ PipingFailureMechanism failureMechanism,
+ IAssessmentSection assessmentSection,
ConstructionProperties constructionProperties)
: base(sectionResult)
{
@@ -65,12 +72,24 @@
throw new ArgumentNullException(nameof(calculateProbabilityStrategy));
}
+ if (failureMechanism == null)
+ {
+ throw new ArgumentNullException(nameof(failureMechanism));
+ }
+
+ if (assessmentSection == null)
+ {
+ throw new ArgumentNullException(nameof(assessmentSection));
+ }
+
if (constructionProperties == null)
{
throw new ArgumentNullException(nameof(constructionProperties));
}
this.calculateProbabilityStrategy = calculateProbabilityStrategy;
+ this.failureMechanism = failureMechanism;
+ this.assessmentSection = assessmentSection;
initialFailureMechanismResultIndex = constructionProperties.InitialFailureMechanismResultIndex;
initialFailureMechanismResultProfileProbabilityIndex = constructionProperties.InitialFailureMechanismResultProfileProbabilityIndex;
Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs
===================================================================
diff -u -r297d01e1742867ded4f512269a9b309e664572af -rf3dd442bed9a828039f786a3ab21769f4acd6d7a
--- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision 297d01e1742867ded4f512269a9b309e664572af)
+++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision f3dd442bed9a828039f786a3ab21769f4acd6d7a)
@@ -26,6 +26,7 @@
using Core.Common.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
+using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Common.Data.TestUtil;
using Riskeer.Common.Forms.TestUtil;
@@ -55,30 +56,77 @@
public void Constructor_CalculateProbabilityStrategyNull_ThrowsArgumentNullException()
{
// Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
var result = new PipingFailureMechanismSectionResult(section);
// Call
- void Call() => new PipingFailureMechanismSectionResultRow(result, null, ConstructionProperties);
+ void Call() => new PipingFailureMechanismSectionResultRow(result, null, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Assert
var exception = Assert.Throws(Call);
Assert.AreEqual("calculateProbabilityStrategy", exception.ParamName);
+ mocks.VerifyAll();
}
[Test]
+ public void Constructor_FailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new PipingFailureMechanismSectionResult(section);
+
+ // Call
+ void Call() => new PipingFailureMechanismSectionResultRow(result, calculateStrategy, null, assessmentSection, ConstructionProperties);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Constructor_AssessmentSectionNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var calculateStrategy = mocks.Stub();
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new PipingFailureMechanismSectionResult(section);
+
+ // Call
+ void Call() => new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), null, ConstructionProperties);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("assessmentSection", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void Constructor_ConstructionPropertiesNull_ThrowsArgumentNullException()
{
// Setup
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
var result = new PipingFailureMechanismSectionResult(section);
// Call
- void Call() => new PipingFailureMechanismSectionResultRow(result, calculateStrategy, null);
+ void Call() => new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, null);
// Assert
var exception = Assert.Throws(Call);
@@ -97,6 +145,7 @@
var calculateStrategy = mocks.Stub();
calculateStrategy.Stub(c => c.CalculateProfileProbability()).Return(profileProbability);
calculateStrategy.Stub(c => c.CalculateSectionProbability()).Return(sectionProbability);
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
@@ -106,7 +155,7 @@
};
// Call
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Assert
Assert.IsInstanceOf>(row);
@@ -154,12 +203,13 @@
var calculateStrategy = mocks.Stub();
calculateStrategy.Stub(c => c.CalculateProfileProbability()).Return(profileProbability);
calculateStrategy.Stub(c => c.CalculateSectionProbability()).Return(sectionProbability);
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
var result = new PipingFailureMechanismSectionResult(section);
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Precondition
Assert.AreEqual(profileProbability, row.InitialFailureMechanismResultProfileProbability);
@@ -182,6 +232,7 @@
// Given
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
@@ -190,7 +241,7 @@
ProbabilityRefinementType = ProbabilityRefinementType.Both
};
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Precondition
Assert.AreEqual(result.RefinedProfileProbability, row.RefinedProfileProbability);
@@ -327,6 +378,7 @@
// Setup
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
var observer = mocks.StrictMock();
observer.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
@@ -335,7 +387,7 @@
var result = new PipingFailureMechanismSectionResult(section);
result.Attach(observer);
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Call
setPropertyAction(row);
@@ -351,12 +403,13 @@
// Setup
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
var result = new PipingFailureMechanismSectionResult(section);
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Call
void Call() => setPropertyAction(row);
@@ -396,6 +449,7 @@
// Setup
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
@@ -408,7 +462,7 @@
};
// Call
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Assert
IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
@@ -441,6 +495,7 @@
// Setup
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
@@ -450,7 +505,7 @@
};
// Call
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Assert
IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
@@ -471,6 +526,7 @@
// Setup
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
@@ -481,7 +537,7 @@
};
// Call
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Assert
IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
@@ -507,6 +563,7 @@
// Setup
var mocks = new MockRepository();
var calculateStrategy = mocks.Stub();
+ var assessmentSection = mocks.Stub();
mocks.ReplayAll();
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
@@ -517,7 +574,7 @@
};
// Call
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanism(), assessmentSection, ConstructionProperties);
// Assert
IDictionary columnStateDefinitions = row.ColumnStateDefinitions;