Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs
===================================================================
diff -u -rfa05755175660f1738a1c3bf82fb4505b93ffa1f -r6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce
--- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision fa05755175660f1738a1c3bf82fb4505b93ffa1f)
+++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision 6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce)
@@ -27,6 +27,7 @@
using Ringtoets.Common.Data.Probability;
using Ringtoets.Common.Data.Structures;
using Ringtoets.Common.Service;
+using Ringtoets.Common.Service.MessageProviders;
using Ringtoets.Common.Service.Structures;
using Ringtoets.HydraRing.Calculation.Calculator;
using Ringtoets.HydraRing.Calculation.Data.Input.Structures;
@@ -42,6 +43,11 @@
{
private static readonly ILog log = LogManager.GetLogger(typeof(ClosingStructuresCalculationService));
+ ///
+ /// Creates a new instance of .
+ ///
+ public ClosingStructuresCalculationService() : base(new ClosingStructuresCalculationMessageProvider()) {}
+
protected override StructuresClosureCalculationInput CreateInput(StructuresCalculation calculation, ClosingStructuresFailureMechanism failureMechanism, string hydraulicBoundaryDatabaseFilePath)
{
StructuresClosureCalculationInput input;
Index: Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs
===================================================================
diff -u -rfa05755175660f1738a1c3bf82fb4505b93ffa1f -r6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce
--- Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision fa05755175660f1738a1c3bf82fb4505b93ffa1f)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision 6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce)
@@ -30,6 +30,7 @@
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.Structures;
using Ringtoets.Common.IO.HydraRing;
+using Ringtoets.Common.Service.MessageProviders;
using Ringtoets.Common.Service.Properties;
using Ringtoets.Common.Service.ValidationRules;
using Ringtoets.HydraRing.Calculation.Calculator;
@@ -57,6 +58,20 @@
private IStructuresCalculator calculator;
///
+ /// Creates a new instance of .
+ ///
+ /// The object which is used to build log messages.
+ /// Thrown when
+ /// is null.
+ protected StructuresCalculationServiceBase(IStructuresCalculationMessageProvider messageProvider)
+ {
+ if (messageProvider == null)
+ {
+ throw new ArgumentNullException(nameof(messageProvider));
+ }
+ }
+
+ ///
/// Performs validation over the values on the given . Error and status information is logged during
/// the execution of the operation.
///
Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/Structures/StructuresCalculationServiceBaseTest.cs
===================================================================
diff -u -rfa05755175660f1738a1c3bf82fb4505b93ffa1f -r6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce
--- Ringtoets/Common/test/Ringtoets.Common.Service.Test/Structures/StructuresCalculationServiceBaseTest.cs (.../StructuresCalculationServiceBaseTest.cs) (revision fa05755175660f1738a1c3bf82fb4505b93ffa1f)
+++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/Structures/StructuresCalculationServiceBaseTest.cs (.../StructuresCalculationServiceBaseTest.cs) (revision 6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce)
@@ -30,6 +30,7 @@
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.Structures;
using Ringtoets.Common.Data.TestUtil;
+using Ringtoets.Common.Service.MessageProviders;
using Ringtoets.Common.Service.Structures;
using Ringtoets.Common.Service.TestUtil;
using Ringtoets.HydraRing.Calculation.Calculator;
@@ -48,6 +49,17 @@
private static readonly string validFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite");
[Test]
+ public void Constructor_MessageProviderNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate test = () => new TestStructuresCalculationService(null);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("messageProvider", exception.ParamName);
+ }
+
+ [Test]
public void Validate_CalculationNull_ThrowArgumentNullException()
{
// Setup
@@ -329,7 +341,7 @@
var failureMechanism = new TestFailureMechanism();
// Call
- TestDelegate test = () => new TestStructuresCalculationService().Calculate(null,
+ TestDelegate test = () => new TestStructuresCalculationService(new TestMessageProvider()).Calculate(null,
assessmentSection,
failureMechanism,
string.Empty);
@@ -348,7 +360,7 @@
var failureMechanism = new TestFailureMechanism();
// Call
- TestDelegate test = () => new TestStructuresCalculationService().Calculate(calculation,
+ TestDelegate test = () => new TestStructuresCalculationService(new TestMessageProvider()).Calculate(calculation,
null,
failureMechanism,
string.Empty);
@@ -369,7 +381,7 @@
var calculation = new TestStructuresCalculation();
// Call
- TestDelegate test = () => new TestStructuresCalculationService().Calculate(calculation,
+ TestDelegate test = () => new TestStructuresCalculationService(new TestMessageProvider()).Calculate(calculation,
assessmentSection,
null,
string.Empty);
@@ -405,7 +417,7 @@
using (new HydraRingCalculatorFactoryConfig(calculatorFactory))
{
- var service = new TestStructuresCalculationService();
+ var service = new TestStructuresCalculationService(new TestMessageProvider());
// Call
service.Calculate(calculation,
@@ -450,7 +462,7 @@
using (new HydraRingCalculatorFactoryConfig(calculatorFactory))
{
- var service = new TestStructuresCalculationService();
+ var service = new TestStructuresCalculationService(new TestMessageProvider());
calculator.CalculationFinishedHandler += (s, e) => service.Cancel();
// Call
@@ -469,6 +481,8 @@
private class TestStructuresCalculationService : StructuresCalculationServiceBase
{
+ public TestStructuresCalculationService(IStructuresCalculationMessageProvider messageProvider) : base(messageProvider) {}
+
protected override ExceedanceProbabilityCalculationInput CreateInput(StructuresCalculation calculation,
TestFailureMechanism failureMechanism,
string hydraulicBoundaryDatabaseFilePath)
@@ -502,5 +516,23 @@
}
}
}
+
+ private class TestMessageProvider : IStructuresCalculationMessageProvider
+ {
+ public string GetCalculationFailedMessage(string calculationSubject)
+ {
+ return $"Calculation {calculationSubject} failed.";
+ }
+
+ public string GetCalculationFailedWithErrorReportMessage(string calculationSubject, string errorReport)
+ {
+ return $"Calculation {calculationSubject} failed with report {errorReport}.";
+ }
+
+ public string GetCalculationPerformedMessage(string calculationSubject)
+ {
+ return $"Calculation {calculationSubject} performed.";
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationService.cs
===================================================================
diff -u -rfa05755175660f1738a1c3bf82fb4505b93ffa1f -r6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce
--- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationService.cs (.../HeightStructuresCalculationService.cs) (revision fa05755175660f1738a1c3bf82fb4505b93ffa1f)
+++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationService.cs (.../HeightStructuresCalculationService.cs) (revision 6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce)
@@ -24,6 +24,7 @@
using Ringtoets.Common.Data.Probability;
using Ringtoets.Common.Data.Structures;
using Ringtoets.Common.Service;
+using Ringtoets.Common.Service.MessageProviders;
using Ringtoets.Common.Service.Structures;
using Ringtoets.HeightStructures.Data;
using Ringtoets.HeightStructures.Service.Properties;
@@ -41,6 +42,11 @@
{
private static readonly ILog log = LogManager.GetLogger(typeof(HeightStructuresCalculationService));
+ ///
+ /// Creates a new instance of .
+ ///
+ public HeightStructuresCalculationService() : base(new HeightStructuresCalculationMessageProvider()) {}
+
protected override StructuresOvertoppingCalculationInput CreateInput(StructuresCalculation calculation,
HeightStructuresFailureMechanism failureMechanism,
string hydraulicBoundaryDatabaseFilePath)
Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresCalculationService.cs
===================================================================
diff -u -r461842cc9a0a60d00900065b9a7db474db7d7548 -r6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce
--- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresCalculationService.cs (.../StabilityPointStructuresCalculationService.cs) (revision 461842cc9a0a60d00900065b9a7db474db7d7548)
+++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresCalculationService.cs (.../StabilityPointStructuresCalculationService.cs) (revision 6e0a4fb94b3cd5631842025c95d2b1460fc7a6ce)
@@ -25,6 +25,7 @@
using Ringtoets.Common.Data.Probability;
using Ringtoets.Common.Data.Structures;
using Ringtoets.Common.Service;
+using Ringtoets.Common.Service.MessageProviders;
using Ringtoets.Common.Service.Structures;
using Ringtoets.HydraRing.Calculation.Calculator;
using Ringtoets.HydraRing.Calculation.Data.Input.Structures;
@@ -45,6 +46,11 @@
{
private static readonly ILog log = LogManager.GetLogger(typeof(StabilityPointStructuresCalculationService));
+ ///
+ /// Creates a new instance of .
+ ///
+ public StabilityPointStructuresCalculationService() : base(new StabilityPointStructuresCalculationMessageProvider()) {}
+
protected override StructuresStabilityPointCalculationInput CreateInput(StructuresCalculation calculation,
StabilityPointStructuresFailureMechanism failureMechanism,
string hydraulicBoundaryDatabaseFilePath)