Fisheye: Tag d55ef762fda182aedb3d0c86ed17d2405abb55db refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/AssemblyErrorMessageCreator.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/AssemblyErrorMessageCreator.cs
===================================================================
diff -u
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/AssemblyErrorMessageCreator.cs (revision 0)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/AssemblyErrorMessageCreator.cs (revision d55ef762fda182aedb3d0c86ed17d2405abb55db)
@@ -0,0 +1,136 @@
+// Copyright (C) Stichting Deltares 2017. 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.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using Assembly.Kernel.Exceptions;
+using Ringtoets.AssemblyTool.KernelWrapper.Properties;
+
+namespace Ringtoets.AssemblyTool.KernelWrapper.Creators
+{
+ ///
+ /// Class that creates to localized error messages for the assembly tool.
+ ///
+ public static class AssemblyErrorMessageCreator
+ {
+ ///
+ /// Creates a localized string based on the contents of .
+ ///
+ /// The collection of to localize.
+ /// A localized string containing the error messages.
+ /// Thrown when is null.
+ /// Thrown when contains an
+ /// invalid value of .
+ public static string CreateErrorMessage(IEnumerable errorMessages)
+ {
+ if (errorMessages == null)
+ {
+ throw new ArgumentNullException(nameof(errorMessages));
+ }
+
+ return errorMessages.Count() == 1
+ ? GetErrorMessage(errorMessages.Single().ErrorCode)
+ : errorMessages.Aggregate(string.Empty, (current, message) => current + "- " + GetErrorMessage(message.ErrorCode) + "\n");
+ }
+
+ ///
+ /// Creates a generic error message.
+ ///
+ /// A generic error message.
+ public static string CreateGenericErrorMessage()
+ {
+ return Resources.AssemblyErrorMessageCreator_GenericErrorMessage;
+ }
+
+ ///
+ /// Gets the localized error message that belongs to the given .
+ ///
+ /// The to localize.
+ /// A localized string.
+ /// Thrown when
+ /// is an invalid value of .
+ /// Thrown when is a valid value,
+ /// but unsupported.
+ private static string GetErrorMessage(EAssemblyErrors assemblyError)
+ {
+ if (!Enum.IsDefined(typeof(EAssemblyErrors), assemblyError))
+ {
+ throw new InvalidEnumArgumentException(nameof(assemblyError), (int) assemblyError, typeof(EAssemblyErrors));
+ }
+
+ switch (assemblyError)
+ {
+ case EAssemblyErrors.SignallingLimitOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_SignallingLimitOutOfRange;
+ case EAssemblyErrors.LowerLimitOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_LowerLimitOutOfRange;
+ case EAssemblyErrors.FailurePropbabilityMarginOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_FailurePropbabilityMarginOutOfRange;
+ case EAssemblyErrors.LengthEffectFactorOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_LengthEffectFactorOutOfRange;
+ case EAssemblyErrors.SectionLengthOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_SectionLengthOutOfRange;
+ case EAssemblyErrors.SignallingLimitAboveLowerLimit:
+ return Resources.AssemblyErrorMessageCreator_SignallingLimitAboveLowerLimit;
+ case EAssemblyErrors.PsigDsnAbovePsig:
+ return Resources.AssemblyErrorMessageCreator_PsigDsnAbovePsig;
+ case EAssemblyErrors.PlowDsnAbovePlow:
+ return Resources.AssemblyErrorMessageCreator_PlowDsnAbovePlow;
+ case EAssemblyErrors.LowerLimitIsAboveUpperLimit:
+ return Resources.AssemblyErrorMessageCreator_LowerLimitIsAboveUpperLimit;
+ case EAssemblyErrors.CategoryLowerLimitOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_CategoryLowerLimitOutOfRange;
+ case EAssemblyErrors.CategoryUpperLimitOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_CategoryUpperLimitOutOfRange;
+ case EAssemblyErrors.TranslateAssessmentInvalidInput:
+ return Resources.AssemblyErrorMessageCreator_TranslateAssessmentInvalidInput;
+ case EAssemblyErrors.ValueMayNotBeNull:
+ return Resources.AssemblyErrorMessageCreator_ValueMayNotBeNull;
+ case EAssemblyErrors.CategoryNotAllowed:
+ return Resources.AssemblyErrorMessageCreator_CategoryNotAllowed;
+ case EAssemblyErrors.DoesNotComplyAfterComply:
+ return Resources.AssemblyErrorMessageCreator_DoesNotComplyAfterComply;
+ case EAssemblyErrors.FmSectionLengthInvalid:
+ return Resources.AssemblyErrorMessageCreator_FmSectionLengthInvalid;
+ case EAssemblyErrors.FmSectionSectionStartEndInvalid:
+ return Resources.AssemblyErrorMessageCreator_FmSectionSectionStartEndInvalid;
+ case EAssemblyErrors.FailureProbabilityOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_FailureProbabilityOutOfRange;
+ case EAssemblyErrors.InputNotTheSameType:
+ return Resources.AssemblyErrorMessageCreator_InputNotTheSameType;
+ case EAssemblyErrors.FailureMechanismAssemblerInputInvalid:
+ return Resources.AssemblyErrorMessageCreator_NoSectionsImported;
+ case EAssemblyErrors.CommonFailureMechanismSectionsInvalid:
+ return Resources.AssemblyErrorMessageCreator_NoSectionsImported;
+ case EAssemblyErrors.CommonFailureMechanismSectionsNotConsecutive:
+ return Resources.AssemblyErrorMessageCreator_CommonFailureMechanismSectionsNotConsecutive;
+ case EAssemblyErrors.RequestedPointOutOfRange:
+ return Resources.AssemblyErrorMessageCreator_RequestedPointOutOfRange;
+ case EAssemblyErrors.FailureMechanismDuplicateSection:
+ return Resources.AssemblyErrorMessageCreator_FailureMechanismDuplicateSection;
+ default:
+ throw new NotSupportedException();
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Ringtoets.AssemblyTool.KernelWrapper.csproj
===================================================================
diff -u -r61e0b1bf1351eabb70eccd3fafeb61ade378f44c -rd55ef762fda182aedb3d0c86ed17d2405abb55db
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Ringtoets.AssemblyTool.KernelWrapper.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.csproj) (revision 61e0b1bf1351eabb70eccd3fafeb61ade378f44c)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Ringtoets.AssemblyTool.KernelWrapper.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.csproj) (revision d55ef762fda182aedb3d0c86ed17d2405abb55db)
@@ -14,7 +14,7 @@
-
+
Fisheye: Tag d55ef762fda182aedb3d0c86ed17d2405abb55db refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/AssemblyErrorMessageCreatorTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Categories/AssemblyCategoriesCalculatorTest.cs
===================================================================
diff -u -rd75cba7f33dd4264452ed4dcceddd5ec79b210ea -rd55ef762fda182aedb3d0c86ed17d2405abb55db
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Categories/AssemblyCategoriesCalculatorTest.cs (.../AssemblyCategoriesCalculatorTest.cs) (revision d75cba7f33dd4264452ed4dcceddd5ec79b210ea)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Categories/AssemblyCategoriesCalculatorTest.cs (.../AssemblyCategoriesCalculatorTest.cs) (revision d55ef762fda182aedb3d0c86ed17d2405abb55db)
@@ -29,8 +29,8 @@
using NUnit.Framework;
using Rhino.Mocks;
using Ringtoets.AssemblyTool.Data;
-using Ringtoets.AssemblyTool.KernelWrapper.Calculators;
using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Categories;
+using Ringtoets.AssemblyTool.KernelWrapper.Creators;
using Ringtoets.AssemblyTool.KernelWrapper.Kernels;
using Ringtoets.AssemblyTool.KernelWrapper.TestUtil;
using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Kernels;
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/AssemblyErrorMessageCreatorTest.cs
===================================================================
diff -u
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/AssemblyErrorMessageCreatorTest.cs (revision 0)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/AssemblyErrorMessageCreatorTest.cs (revision d55ef762fda182aedb3d0c86ed17d2405abb55db)
@@ -0,0 +1,132 @@
+// Copyright (C) Stichting Deltares 2017. 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.ComponentModel;
+using System.Linq;
+using Assembly.Kernel.Exceptions;
+using Core.Common.TestUtil;
+using NUnit.Framework;
+using Ringtoets.AssemblyTool.KernelWrapper.Creators;
+
+namespace Ringtoets.AssemblyTool.KernelWrapper.Test.Creators
+{
+ [TestFixture]
+ public class AssemblyErrorMessageCreatorTest
+ {
+ [Test]
+ public void CreateErrorMessage_ErrorMessagesNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate test = () => AssemblyErrorMessageCreator.CreateErrorMessage(null);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("errorMessages", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateErrorMessage_InvalidAssemblyError_ThrowsInvalidEnumArgumentException()
+ {
+ // Call
+ TestDelegate test = () => AssemblyErrorMessageCreator.CreateErrorMessage(new[]
+ {
+ new AssemblyErrorMessage(string.Empty, (EAssemblyErrors) 9999)
+ });
+
+ // Assert
+ string expectedMessage = $"The value of argument 'assemblyError' (9999) is invalid for Enum type '{nameof(EAssemblyErrors)}'.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage);
+ }
+
+ [Test]
+ [TestCase(EAssemblyErrors.SignallingLimitOutOfRange, "Signaleringskans moet in het bereik [0,1] liggen.")]
+ [TestCase(EAssemblyErrors.LowerLimitOutOfRange, "Ondergrens moet in het bereik [0,1] liggen.")]
+ [TestCase(EAssemblyErrors.FailurePropbabilityMarginOutOfRange, "Faalkansruimte moet in het bereik [0,1] liggen.")]
+ [TestCase(EAssemblyErrors.LengthEffectFactorOutOfRange, "Lengte-effect factor moet minimaal 1 zijn.")]
+ [TestCase(EAssemblyErrors.SectionLengthOutOfRange, "De trajectlengte moet groter zijn dan 0 [m].")]
+ [TestCase(EAssemblyErrors.SignallingLimitAboveLowerLimit, "De signaleringskans moet kleiner zijn dan de ondergrens.")]
+ [TestCase(EAssemblyErrors.PsigDsnAbovePsig, "Berekende signaleringskans per doorsnede is groter dan de signaleringskans van het traject.")]
+ [TestCase(EAssemblyErrors.PlowDsnAbovePlow, "Berekende ondergrens per doorsnede is groter dan de ondergrens van het traject.")]
+ [TestCase(EAssemblyErrors.LowerLimitIsAboveUpperLimit, "De categoriebovengrens moet boven de categorieondergrens liggen.")]
+ [TestCase(EAssemblyErrors.CategoryLowerLimitOutOfRange, "Categoriebovengrens moet in het bereik [0,1] liggen.")]
+ [TestCase(EAssemblyErrors.CategoryUpperLimitOutOfRange, "Categorieondergrens moet in het bereik [0,1] liggen.")]
+ [TestCase(EAssemblyErrors.TranslateAssessmentInvalidInput, "Er is een ongeldig resultaat gespecificeerd voor de gebruikte methode.")]
+ [TestCase(EAssemblyErrors.ValueMayNotBeNull, "Er is ongeldige invoer gedefinieerd voor de gebruikte methode.")]
+ [TestCase(EAssemblyErrors.CategoryNotAllowed, "Het specificeren van een assemblageresultaat voor deze categorie is niet mogelijk.")]
+ [TestCase(EAssemblyErrors.DoesNotComplyAfterComply, "Een lagere categorie moet als voldoende worden aangemerkt indien het vak voor een hogere categorie voldoet.")]
+ [TestCase(EAssemblyErrors.FmSectionLengthInvalid, "Gezamenlijke lengte van alle deelvakken moet gelijk zijn aan de trajectlengte.")]
+ [TestCase(EAssemblyErrors.FmSectionSectionStartEndInvalid, "De lengte van een berekende deelvak kon niet goed worden bepaald.")]
+ [TestCase(EAssemblyErrors.FailureProbabilityOutOfRange, "De gespecificeerde kans moet in het bereik [0,1] liggen.")]
+ [TestCase(EAssemblyErrors.InputNotTheSameType, "De resultaten voor alle vakken moeten allen wel of geen kansspecificatie bevatten.")]
+ [TestCase(EAssemblyErrors.FailureMechanismAssemblerInputInvalid, "Er moet een vakindeling zijn geimporteerd.")]
+ [TestCase(EAssemblyErrors.CommonFailureMechanismSectionsInvalid, "Er moet een vakindeling zijn geimporteerd.")]
+ [TestCase(EAssemblyErrors.CommonFailureMechanismSectionsNotConsecutive, "Alle (deel)vakken moeten minimaal een lengte hebben van 0.01 [m].")]
+ [TestCase(EAssemblyErrors.RequestedPointOutOfRange, "De gespecificeerde resultaten voor een of meerdere toetssporen dekken niet de volledige lengte van het traject.")]
+ [TestCase(EAssemblyErrors.FailureMechanismDuplicateSection, "De gespecificeerde vakindeling voor een of meerdere toetssporen bevat een of meer overlappende vakken.")]
+ public void CreateErrorMessage_SingleAssemblyError_ReturnsExpectedErrorMessage(EAssemblyErrors assemblyError, string expectedErrorMessage)
+ {
+ // Call
+ string errorMessage = AssemblyErrorMessageCreator.CreateErrorMessage(new[]
+ {
+ new AssemblyErrorMessage(string.Empty, assemblyError)
+ });
+
+ // Assert
+ Assert.AreEqual(expectedErrorMessage, errorMessage);
+ }
+
+ [Test]
+ public void CreateErrorMessage_MultipleAssemblyErrors_ReturnsExpectedErrorMessage()
+ {
+ // Call
+ string errorMessage = AssemblyErrorMessageCreator.CreateErrorMessage(new[]
+ {
+ new AssemblyErrorMessage(string.Empty, EAssemblyErrors.CategoryNotAllowed),
+ new AssemblyErrorMessage(string.Empty, EAssemblyErrors.FailureProbabilityOutOfRange)
+ });
+
+ // Assert
+ Assert.AreEqual("- Het specificeren van een assemblageresultaat voor deze categorie is niet mogelijk.\n" +
+ "- De gespecificeerde kans moet in het bereik [0,1] liggen.\n", errorMessage);
+ }
+
+ [Test]
+ public void CreateErrorMessage_NoAssemblyErrors_ReturnsEmptyErrorMessage()
+ {
+ // Call
+ string errorMessage = AssemblyErrorMessageCreator.CreateErrorMessage(Enumerable.Empty());
+
+ // Assert
+ Assert.IsEmpty(errorMessage);
+ }
+
+ [Test]
+ public void CreateGenericErrorMessage_Always_ReturnsExpectedErrorMessage()
+ {
+ // Call
+ string errorMessage = AssemblyErrorMessageCreator.CreateGenericErrorMessage();
+
+ // Assert
+ Assert.AreEqual("Er is een onverwachte fout opgetreden tijdens het assembleren.", errorMessage);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Ringtoets.AssemblyTool.KernelWrapper.Test.csproj
===================================================================
diff -u -r61e0b1bf1351eabb70eccd3fafeb61ade378f44c -rd55ef762fda182aedb3d0c86ed17d2405abb55db
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Ringtoets.AssemblyTool.KernelWrapper.Test.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.Test.csproj) (revision 61e0b1bf1351eabb70eccd3fafeb61ade378f44c)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Ringtoets.AssemblyTool.KernelWrapper.Test.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.Test.csproj) (revision d55ef762fda182aedb3d0c86ed17d2405abb55db)
@@ -20,7 +20,7 @@
-
+