Index: Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfiguration.cs
===================================================================
diff -u -r40d5cd46ad0541d58f5d58206df3aa0a3892e73a -r86c3749da5879489a30004027e1ac6782cec97e8
--- Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfiguration.cs (.../PipingCalculationConfiguration.cs) (revision 40d5cd46ad0541d58f5d58206df3aa0a3892e73a)
+++ Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfiguration.cs (.../PipingCalculationConfiguration.cs) (revision 86c3749da5879489a30004027e1ac6782cec97e8)
@@ -20,6 +20,7 @@
// All rights reserved.
using System;
+using System.ComponentModel;
using Riskeer.Common.IO.Configurations;
namespace Riskeer.Piping.IO.Configurations
@@ -33,21 +34,32 @@
/// Creates a new instance of .
///
/// The name of the .
+ /// The type of the .
/// Thrown when is null.
- public PipingCalculationConfiguration(string name)
+ /// Thrown when
+ /// has an invalid value.
+ public PipingCalculationConfiguration(string name, PipingCalculationConfigurationType calculationType)
{
if (name == null)
{
throw new ArgumentNullException(nameof(name));
}
-
+
+ if (!Enum.IsDefined(typeof(PipingCalculationConfigurationType), calculationType))
+ {
+ throw new InvalidEnumArgumentException(nameof(calculationType),
+ (int) calculationType,
+ typeof(PipingCalculationConfigurationType));
+ }
+
Name = name;
+ CalculationType = calculationType;
}
///
- /// Gets or sets the calculation type.
+ /// Gets the calculation type.
///
- public PipingCalculationConfigurationType? CalculationType { get; set; }
+ public PipingCalculationConfigurationType CalculationType { get; }
///
/// Gets or sets the assessment level of the piping calculation.
Index: Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs
===================================================================
diff -u -r732c5a8e5396d0e7e7b9182286329e81bec0c583 -r86c3749da5879489a30004027e1ac6782cec97e8
--- Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs (.../PipingCalculationConfigurationExporter.cs) (revision 732c5a8e5396d0e7e7b9182286329e81bec0c583)
+++ Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs (.../PipingCalculationConfigurationExporter.cs) (revision 86c3749da5879489a30004027e1ac6782cec97e8)
@@ -52,7 +52,7 @@
{
PipingInput input = calculation.InputParameters;
- var calculationConfiguration = new PipingCalculationConfiguration(calculation.Name)
+ var calculationConfiguration = new PipingCalculationConfiguration(calculation.Name, PipingCalculationConfigurationType.SemiProbabilistic)
{
DampingFactorExit = input.DampingFactorExit.ToStochastConfiguration(),
PhreaticLevelExit = input.PhreaticLevelExit.ToStochastConfiguration(),
Index: Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationReader.cs
===================================================================
diff -u -rd3f749623318998086cec0a222cdb4638f6ef589 -r86c3749da5879489a30004027e1ac6782cec97e8
--- Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationReader.cs (.../PipingCalculationConfigurationReader.cs) (revision d3f749623318998086cec0a222cdb4638f6ef589)
+++ Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationReader.cs (.../PipingCalculationConfigurationReader.cs) (revision 86c3749da5879489a30004027e1ac6782cec97e8)
@@ -90,9 +90,9 @@
protected override PipingCalculationConfiguration ParseCalculationElement(XElement calculationElement)
{
- return new PipingCalculationConfiguration(calculationElement.Attribute(ConfigurationSchemaIdentifiers.NameAttribute).Value)
+ return new PipingCalculationConfiguration(calculationElement.Attribute(ConfigurationSchemaIdentifiers.NameAttribute).Value,
+ GetCalculationType(calculationElement).Value)
{
- CalculationType = GetCalculationType(calculationElement),
AssessmentLevel = calculationElement.GetDoubleValueFromDescendantElement(PipingCalculationConfigurationSchemaIdentifiers.WaterLevelElement),
HydraulicBoundaryLocationName = calculationElement.GetStringValueFromDescendantElement(ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement),
SurfaceLineName = calculationElement.GetStringValueFromDescendantElement(PipingCalculationConfigurationSchemaIdentifiers.SurfaceLineElement),
Index: Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationTest.cs
===================================================================
diff -u -r40d5cd46ad0541d58f5d58206df3aa0a3892e73a -r86c3749da5879489a30004027e1ac6782cec97e8
--- Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationTest.cs (.../PipingCalculationConfigurationTest.cs) (revision 40d5cd46ad0541d58f5d58206df3aa0a3892e73a)
+++ Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationTest.cs (.../PipingCalculationConfigurationTest.cs) (revision 86c3749da5879489a30004027e1ac6782cec97e8)
@@ -20,6 +20,8 @@
// All rights reserved.
using System;
+using System.ComponentModel;
+using Core.Common.TestUtil;
using NUnit.Framework;
using Riskeer.Common.IO.Configurations;
using Riskeer.Piping.IO.Configurations;
@@ -33,26 +35,41 @@
public void Constructor_NameNull_ThrowsArgumentNullException()
{
// Call
- void Call() => new PipingCalculationConfiguration(null);
+ void Call() => new PipingCalculationConfiguration(null, PipingCalculationConfigurationType.Probabilistic);
// Assert
var exception = Assert.Throws(Call);
Assert.AreEqual("name", exception.ParamName);
}
[Test]
- public void Constructor_WithName_PropertiesAreDefault()
+ public void Constructor_CalculationTypeInvalid_ThrowsInvalidEnumArgumentException()
{
+ // Setup
+ const PipingCalculationConfigurationType calculationType = (PipingCalculationConfigurationType) 99;
+
+ // Call
+ void Call() => new PipingCalculationConfiguration("name", calculationType);
+
+ // Assert
+ var expectedMessage = $"The value of argument '{nameof(calculationType)}' ({calculationType}) is invalid for Enum type '{nameof(PipingCalculationConfigurationType)}'.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(Call, expectedMessage);
+ }
+
+ [Test]
+ public void Constructor_WithValidData_PropertiesAreDefault()
+ {
// Setup
const string name = "some name";
+ var calculationType = new Random(21).NextEnumValue();
// Call
- var readPipingCalculation = new PipingCalculationConfiguration(name);
+ var readPipingCalculation = new PipingCalculationConfiguration(name, calculationType);
// Assert
Assert.IsInstanceOf(readPipingCalculation);
Assert.AreEqual(name, readPipingCalculation.Name);
- Assert.IsNull(readPipingCalculation.CalculationType);
+ Assert.AreEqual(calculationType, readPipingCalculation.CalculationType);
Assert.IsNull(readPipingCalculation.AssessmentLevel);
Assert.IsNull(readPipingCalculation.HydraulicBoundaryLocationName);
Assert.IsNull(readPipingCalculation.SurfaceLineName);
Index: Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs
===================================================================
diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -r86c3749da5879489a30004027e1ac6782cec97e8
--- Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs (.../PipingCalculationConfigurationWriterTest.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea)
+++ Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs (.../PipingCalculationConfigurationWriterTest.cs) (revision 86c3749da5879489a30004027e1ac6782cec97e8)
@@ -78,7 +78,7 @@
private static PipingCalculationConfiguration CreateFullCalculationConfiguration()
{
- return new PipingCalculationConfiguration("PK001_0001 W1-6_0_1D1")
+ return new PipingCalculationConfiguration("PK001_0001 W1-6_0_1D1", PipingCalculationConfigurationType.SemiProbabilistic)
{
AssessmentLevel = 10,
HydraulicBoundaryLocationName = "PUNT_KAT_18",
@@ -107,7 +107,7 @@
private static PipingCalculationConfiguration CreateSparseCalculationConfiguration()
{
- return new PipingCalculationConfiguration("Sparse");
+ return new PipingCalculationConfiguration("Sparse", PipingCalculationConfigurationType.SemiProbabilistic);
}
protected override PipingCalculationConfigurationWriter CreateWriterInstance(string filePath)