Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Exceptions/HydraRingCalculationException.cs
===================================================================
diff -u
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Exceptions/HydraRingCalculationException.cs (revision 0)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Exceptions/HydraRingCalculationException.cs (revision ccda7c4eae626e537cf8497367664bef0095c19f)
@@ -0,0 +1,57 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Runtime.Serialization;
+
+namespace Ringtoets.HydraRing.Calculation.Exceptions
+{
+ ///
+ /// The exception that is thrown when a HydraRing calculation encounters an error while performing.
+ ///
+ [Serializable]
+ public class HydraRingCalculationException : Exception
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public HydraRingCalculationException() {}
+
+ ///
+ /// Initializes a new instance of the class
+ /// with a specified error message.
+ ///
+ /// The error message that explains the reason for the exception.
+ public HydraRingCalculationException(string message) : base(message) {}
+
+ ///
+ /// Initializes a new instance of the class
+ /// with a specified error message and a reference to the inner exception that is
+ /// the cause of this exception.
+ ///
+ /// The error message that explains the reason for the exception.
+ /// The exception that is the cause of the current exception,
+ /// or a null reference if no inner exception is specified.
+ public HydraRingCalculationException(string message, Exception inner) : base(message, inner) {}
+
+ protected HydraRingCalculationException(SerializationInfo info, StreamingContext context) : base(info, context) { }
+ }
+}
\ No newline at end of file
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj
===================================================================
diff -u -r12fa48e392e145311f2f6fe5822a8692594aaf0f -rccda7c4eae626e537cf8497367664bef0095c19f
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 12fa48e392e145311f2f6fe5822a8692594aaf0f)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision ccda7c4eae626e537cf8497367664bef0095c19f)
@@ -96,6 +96,7 @@
+
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Exceptions/HydraRingCalculationExceptionTest.cs
===================================================================
diff -u
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Exceptions/HydraRingCalculationExceptionTest.cs (revision 0)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Exceptions/HydraRingCalculationExceptionTest.cs (revision ccda7c4eae626e537cf8497367664bef0095c19f)
@@ -0,0 +1,98 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Core.Common.TestUtil;
+using NUnit.Framework;
+using Ringtoets.HydraRing.Calculation.Exceptions;
+
+namespace Ringtoets.HydraRing.Calculation.Test.Exceptions
+{
+ [TestFixture]
+ public class HydraRingCalculationExceptionTest
+ {
+ [Test]
+ public void DefaultConstructor_InnerExceptionNullAndMessageDefault()
+ {
+ // Setup
+ string expectedMessage = string.Format("Exception of type '{0}' was thrown.", typeof(HydraRingCalculationException).FullName);
+
+ // Call
+ HydraRingCalculationException exception = new HydraRingCalculationException();
+
+ // Assert
+ Assert.IsInstanceOf(exception);
+ Assert.IsNull(exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Constructor_WithCustomMessage_InnerExceptionNullAndMessageSetToCustom()
+ {
+ // Setup
+ const string expectedMessage = "Some exception message";
+
+ // Call
+ HydraRingCalculationException exception = new HydraRingCalculationException(expectedMessage);
+
+ // Assert
+ Assert.IsNull(exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Constructor_WithCustomMessageAndInnerException_InnerExceptionSetAndMessageSetToCustom()
+ {
+ // Setup
+ const string expectedMessage = "Some exception message";
+ Exception expectedInnerException = new Exception();
+
+ // Call
+ HydraRingCalculationException exception = new HydraRingCalculationException(expectedMessage, expectedInnerException);
+
+ // Assert
+ Assert.AreSame(expectedInnerException, exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Constructor_SerializationRoundTrip_ExceptionProperlyInitialized()
+ {
+ // Setup
+ var originalInnerException = new Exception("inner");
+ var originalException = new HydraRingCalculationException("outer", originalInnerException);
+
+ // Precondition
+ Assert.IsNotNull(originalException.InnerException);
+ Assert.IsNull(originalException.InnerException.InnerException);
+
+ // Call
+ HydraRingCalculationException persistedException = SerializationTestHelper.SerializeAndDeserializeException(originalException);
+
+ // Assert
+ Assert.AreEqual(originalException.Message, persistedException.Message);
+ Assert.IsNotNull(persistedException.InnerException);
+ Assert.AreEqual(originalException.InnerException.GetType(), persistedException.InnerException.GetType());
+ Assert.AreEqual(originalException.InnerException.Message, persistedException.InnerException.Message);
+ Assert.IsNull(persistedException.InnerException.InnerException);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj
===================================================================
diff -u -r12fa48e392e145311f2f6fe5822a8692594aaf0f -rccda7c4eae626e537cf8497367664bef0095c19f
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 12fa48e392e145311f2f6fe5822a8692594aaf0f)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision ccda7c4eae626e537cf8497367664bef0095c19f)
@@ -95,6 +95,7 @@
+