Index: Riskeer/Common/src/Riskeer.Common.Data/AssemblyTool/FailureMechanismAssemblyResultFactory.cs
===================================================================
diff -u -r21db6e69fc90b3abcb46f2154edc9a88cf862cb7 -ra03693d0bb94394ecfdd56a61fcd0d5104380f31
--- Riskeer/Common/src/Riskeer.Common.Data/AssemblyTool/FailureMechanismAssemblyResultFactory.cs (.../FailureMechanismAssemblyResultFactory.cs) (revision 21db6e69fc90b3abcb46f2154edc9a88cf862cb7)
+++ Riskeer/Common/src/Riskeer.Common.Data/AssemblyTool/FailureMechanismAssemblyResultFactory.cs (.../FailureMechanismAssemblyResultFactory.cs) (revision a03693d0bb94394ecfdd56a61fcd0d5104380f31)
@@ -27,6 +27,7 @@
using Riskeer.AssemblyTool.KernelWrapper.Kernels;
using Riskeer.Common.Data.Exceptions;
using Riskeer.Common.Data.FailureMechanism;
+using Riskeer.Common.Data.Properties;
namespace Riskeer.Common.Data.AssemblyTool
{
@@ -74,8 +75,10 @@
return new FailureMechanismAssemblyResultWrapper(
failureMechanismAssemblyResult.ManualFailureMechanismAssemblyProbability,
AssemblyMethod.Manual);
+ case FailureMechanismAssemblyProbabilityResultType.Default:
+ throw new AssemblyException(Resources.FailureMechanismAssemblyResultFactory_AssembleFailureMechanism_Missing_input_for_assembly);
default:
- return null;
+ throw new NotSupportedException();
}
}
catch (FailureMechanismAssemblyCalculatorException e)
Index: Riskeer/Common/src/Riskeer.Common.Data/Properties/Resources.Designer.cs
===================================================================
diff -u -r4121f38c9a0541ccabbe769f451d195dbc5d47db -ra03693d0bb94394ecfdd56a61fcd0d5104380f31
--- Riskeer/Common/src/Riskeer.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 4121f38c9a0541ccabbe769f451d195dbc5d47db)
+++ Riskeer/Common/src/Riskeer.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision a03693d0bb94394ecfdd56a61fcd0d5104380f31)
@@ -426,6 +426,16 @@
}
///
+ /// Looks up a localized string similar to Er ontbreekt invoer voor de assemblage rekenmodule waardoor de assemblage niet uitgevoerd kan worden..
+ ///
+ public static string FailureMechanismAssemblyResultFactory_AssembleFailureMechanism_Missing_input_for_assembly {
+ get {
+ return ResourceManager.GetString("FailureMechanismAssemblyResultFactory_AssembleFailureMechanism_Missing_input_for_" +
+ "assembly", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to De omgevingswaarde moet gelijk zijn aan of groter zijn dan de signaleringsparameter..
///
public static string FailureMechanismContribution_MaximumAllowableFloodingProbability_should_be_same_or_greater_than_SignalFloodingProbability {
Index: Riskeer/Common/src/Riskeer.Common.Data/Properties/Resources.resx
===================================================================
diff -u -r4121f38c9a0541ccabbe769f451d195dbc5d47db -ra03693d0bb94394ecfdd56a61fcd0d5104380f31
--- Riskeer/Common/src/Riskeer.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision 4121f38c9a0541ccabbe769f451d195dbc5d47db)
+++ Riskeer/Common/src/Riskeer.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision a03693d0bb94394ecfdd56a61fcd0d5104380f31)
@@ -411,4 +411,7 @@
<selecteer>
+
+ Er ontbreekt invoer voor de assemblage rekenmodule waardoor de assemblage niet uitgevoerd kan worden.
+
\ No newline at end of file
Index: Riskeer/Common/test/Riskeer.Common.Data.Test/AssemblyTool/FailureMechanismAssemblyResultFactoryTest.cs
===================================================================
diff -u -r21db6e69fc90b3abcb46f2154edc9a88cf862cb7 -ra03693d0bb94394ecfdd56a61fcd0d5104380f31
--- Riskeer/Common/test/Riskeer.Common.Data.Test/AssemblyTool/FailureMechanismAssemblyResultFactoryTest.cs (.../FailureMechanismAssemblyResultFactoryTest.cs) (revision 21db6e69fc90b3abcb46f2154edc9a88cf862cb7)
+++ Riskeer/Common/test/Riskeer.Common.Data.Test/AssemblyTool/FailureMechanismAssemblyResultFactoryTest.cs (.../FailureMechanismAssemblyResultFactoryTest.cs) (revision a03693d0bb94394ecfdd56a61fcd0d5104380f31)
@@ -61,13 +61,41 @@
}
[Test]
- public void AssembleFailureMechanism_WithInputWithProbabilityResultTypeAutomatic_SetsInputOnCalculator()
+ public void AssembleFailureMechanism_WithInputWithProbabilityResultTypeAutomaticIndependentSections_SetsInputOnCalculator()
{
// Setup
var random = new Random(21);
double n = random.NextDouble();
var failureMechanismResult = new FailureMechanismAssemblyResult
{
+ ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.AutomaticIndependentSections
+ };
+ const bool applyLengthEffect = true;
+ IEnumerable sectionResults = Enumerable.Empty();
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ // Call
+ FailureMechanismAssemblyResultFactory.AssembleFailureMechanism(n, sectionResults, applyLengthEffect, failureMechanismResult);
+
+ // Assert
+ var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator;
+
+ Assert.AreEqual(0, calculator.FailureMechanismN);
+ Assert.AreSame(sectionResults, calculator.SectionAssemblyResultsInput);
+ Assert.IsFalse(calculator.ApplyLengthEffect);
+ }
+ }
+
+ [Test]
+ public void AssembleFailureMechanism_WithInputWithProbabilityResultTypeAutomaticWorstSectionOrProfile_SetsInputOnCalculator()
+ {
+ // Setup
+ var random = new Random(21);
+ double n = random.NextDouble();
+ var failureMechanismResult = new FailureMechanismAssemblyResult
+ {
ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.AutomaticWorstSectionOrProfile
};
bool applyLengthEffect = random.NextBoolean();
@@ -89,6 +117,30 @@
}
[Test]
+ public void AssembleFailureMechanism_WithInputWithProbabilityResultTypeDefault_ThrowsAssemblyException()
+ {
+ // Setup
+ var random = new Random(21);
+ double n = random.NextDouble();
+ var failureMechanismResult = new FailureMechanismAssemblyResult
+ {
+ ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.Default
+ };
+ bool applyLengthEffect = random.NextBoolean();
+ IEnumerable sectionResults = Enumerable.Empty();
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ // Call
+ void Call() => FailureMechanismAssemblyResultFactory.AssembleFailureMechanism(n, sectionResults, applyLengthEffect, failureMechanismResult);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("Er ontbreekt invoer voor de assemblage rekenmodule waardoor de assemblage niet uitgevoerd kan worden.", exception.Message);
+ }
+ }
+
+ [Test]
public void AssembleFailureMechanism_WithInputWithProbabilityResultTypeManual_NoInputOnCalculatorAndReturnsOutput()
{
// Setup
@@ -128,9 +180,14 @@
var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator;
+ var failureMechanismAssemblyResult = new FailureMechanismAssemblyResult
+ {
+ ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.AutomaticIndependentSections
+ };
+
// Call
FailureMechanismAssemblyResultWrapper assemblyResult = FailureMechanismAssemblyResultFactory.AssembleFailureMechanism(
- 0, Enumerable.Empty(), false, new FailureMechanismAssemblyResult());
+ 0, Enumerable.Empty(), false, failureMechanismAssemblyResult);
// Assert
Assert.AreSame(calculator.AssemblyResultOutput, assemblyResult);
@@ -147,9 +204,15 @@
FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator;
calculator.ThrowExceptionOnCalculate = true;
+ var failureMechanismAssemblyResult = new FailureMechanismAssemblyResult
+ {
+ ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.AutomaticIndependentSections
+ };
+
// Call
- void Call() => FailureMechanismAssemblyResultFactory.AssembleFailureMechanism(
- 0, Enumerable.Empty(), false, new FailureMechanismAssemblyResult());
+ void Call() =>
+ FailureMechanismAssemblyResultFactory.AssembleFailureMechanism(
+ 0, Enumerable.Empty(), false, failureMechanismAssemblyResult);
// Assert
var exception = Assert.Throws(Call);