Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Integration.Test/ClosingStructuresCalculationActivityIntegrationTest.cs =================================================================== diff -u -r736f04ea6f24399148ab8efd7f3b03ae8f8f56b5 -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Integration.Test/ClosingStructuresCalculationActivityIntegrationTest.cs (.../ClosingStructuresCalculationActivityIntegrationTest.cs) (revision 736f04ea6f24399148ab8efd7f3b03ae8f8f56b5) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Integration.Test/ClosingStructuresCalculationActivityIntegrationTest.cs (.../ClosingStructuresCalculationActivityIntegrationTest.cs) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -142,11 +142,13 @@ } [Test] - [TestCase(true, "An error occurred")] - [TestCase(true, null)] - [TestCase(false, "An error occurred")] - public void Run_InvalidCalculationAndRan_PerformValidationAndCalculationAndActivityStateFailed(bool endInFailure, string lastErrorFileContent) + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] { + nameof(Run_InvalidCalculationAndRan_PerformValidationAndCalculationAndActivityStateFailed) + })] + public void Run_InvalidCalculationAndRan_PerformValidationAndCalculationAndActivityStateFailed(bool endInFailure, + string lastErrorFileContent) + { // Setup var calculator = new TestStructuresClosureCalculator { @@ -249,16 +251,22 @@ } [Test] - public void Finish_InvalidCalculationAndRan_DoesNotSetOutputAndNotifyObserversOfCalculation() + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] { + nameof(Finish_InvalidCalculationAndRan_DoesNotSetOutputAndNotifyObserversOfCalculation) + })] + public void Finish_InvalidCalculationAndRan_DoesNotSetOutputAndNotifyObserversOfCalculation(bool endInFailure, + string lastErrorFileContent) + { // Setup var mockRepository = new MockRepository(); var observerMock = mockRepository.StrictMock(); observerMock.Expect(o => o.UpdateObserver()); var calculator = new TestStructuresClosureCalculator { - EndInFailure = true + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent }; var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs =================================================================== diff -u -r736f04ea6f24399148ab8efd7f3b03ae8f8f56b5 -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs (.../DuneErosionBoundaryCalculationActivityIntegrationTest.cs) (revision 736f04ea6f24399148ab8efd7f3b03ae8f8f56b5) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs (.../DuneErosionBoundaryCalculationActivityIntegrationTest.cs) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -91,11 +91,13 @@ } [Test] - [TestCase(true, "An error occurred")] - [TestCase(true, null)] - [TestCase(false, "An error occurred")] - public void Run_InvalidCalculationAndRan_PerformCalculationAndActivityStateFailed(bool endInFailure, string lastErrorFileContent) + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] { + nameof(Run_InvalidCalculationAndRan_PerformCalculationAndActivityStateFailed) + })] + public void Run_InvalidCalculationAndRan_PerformCalculationAndActivityStateFailed(bool endInFailure, + string lastErrorFileContent) + { // Setup var calculator = new TestDunesBoundaryConditionsCalculator { Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs =================================================================== diff -u -r736f04ea6f24399148ab8efd7f3b03ae8f8f56b5 -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs) (revision 736f04ea6f24399148ab8efd7f3b03ae8f8f56b5) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -285,59 +285,13 @@ } [Test] - public void Run_InvalidOvertoppingCalculationWithExceptionAndLastErrorPresent_LogErrorAndThrowException() + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditionsWithReportDetails), new object[] { - // Setup - var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - ImportHydraulicBoundaryDatabase(assessmentSection); - AddSectionToAssessmentSection(assessmentSection); - - var calculation = new GrassCoverErosionInwardsCalculation - { - InputParameters = - { - HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001), - DikeProfile = CreateDikeProfile() - } - }; - - var calculator = new TestOvertoppingCalculator - { - LastErrorFileContent = "An error occurred", - EndInFailure = true - }; - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateOvertoppingCalculator(testDataPath)).Return(calculator); - mockRepository.ReplayAll(); - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - var activity = new GrassCoverErosionInwardsCalculationActivity(calculation, validFile, assessmentSection.GrassCoverErosionInwards, assessmentSection); - - // Call - Action call = () => activity.Run(); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(6, msgs.Length); - Assert.AreEqual($"Validatie van '{calculation.Name}' gestart.", msgs[0]); - Assert.AreEqual($"Validatie van '{calculation.Name}' beëindigd.", msgs[1]); - Assert.AreEqual($"Berekening van '{calculation.Name}' gestart.", msgs[2]); - StringAssert.StartsWith($"De overloop en overslag berekening voor grasbekleding erosie kruin en binnentalud '{calculation.Name}' is niet gelukt. Bekijk het foutrapport door op details te klikken.", msgs[3]); - StringAssert.StartsWith("De overloop en overslag berekening is uitgevoerd op de tijdelijke locatie", msgs[4]); - Assert.AreEqual($"Berekening van '{calculation.Name}' beëindigd.", msgs[5]); - }); - Assert.AreEqual(ActivityState.Failed, activity.State); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Run_InvalidOvertoppingCalculationWithExceptionAndNoLastErrorPresent_LogErrorAndThrowException() + nameof(Run_InvalidOvertoppingCalculationAndRan_LogErrorAndActivityStateFailed) + })] + public void Run_InvalidOvertoppingCalculationAndRan_LogErrorAndActivityStateFailed(bool endInFailure, + string lastErrorFileContent, + string detailedReport) { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -352,60 +306,11 @@ DikeProfile = CreateDikeProfile() } }; - var calculator = new TestOvertoppingCalculator - { - EndInFailure = true - }; - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateOvertoppingCalculator(testDataPath)).Return(calculator); - mockRepository.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - var activity = new GrassCoverErosionInwardsCalculationActivity(calculation, validFile, assessmentSection.GrassCoverErosionInwards, assessmentSection); - - // Call - Action call = () => activity.Run(); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(6, msgs.Length); - Assert.AreEqual($"Validatie van '{calculation.Name}' gestart.", msgs[0]); - Assert.AreEqual($"Validatie van '{calculation.Name}' beëindigd.", msgs[1]); - Assert.AreEqual($"Berekening van '{calculation.Name}' gestart.", msgs[2]); - Assert.AreEqual($"De overloop en overslag berekening voor grasbekleding erosie kruin en binnentalud '{calculation.Name}' is niet gelukt. Er is geen foutrapport beschikbaar.", msgs[3]); - StringAssert.StartsWith("De overloop en overslag berekening is uitgevoerd op de tijdelijke locatie", msgs[4]); - Assert.AreEqual($"Berekening van '{calculation.Name}' beëindigd.", msgs[5]); - }); - Assert.AreEqual(ActivityState.Failed, activity.State); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Run_InvalidOvertoppingCalculationWithoutExceptionAndWithLastErrorPresent_LogErrorAndThrowException() - { - // Setup - var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - ImportHydraulicBoundaryDatabase(assessmentSection); - AddSectionToAssessmentSection(assessmentSection); - - var calculation = new GrassCoverErosionInwardsCalculation - { - InputParameters = - { - HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001), - DikeProfile = CreateDikeProfile() - } - }; var calculator = new TestOvertoppingCalculator { - LastErrorFileContent = "An error occurred", - EndInFailure = false + LastErrorFileContent = lastErrorFileContent, + EndInFailure = endInFailure }; var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); @@ -427,7 +332,7 @@ Assert.AreEqual($"Validatie van '{calculation.Name}' gestart.", msgs[0]); Assert.AreEqual($"Validatie van '{calculation.Name}' beëindigd.", msgs[1]); Assert.AreEqual($"Berekening van '{calculation.Name}' gestart.", msgs[2]); - StringAssert.StartsWith($"De overloop en overslag berekening voor grasbekleding erosie kruin en binnentalud '{calculation.Name}' is niet gelukt. Bekijk het foutrapport door op details te klikken.", msgs[3]); + Assert.AreEqual($"De overloop en overslag berekening voor grasbekleding erosie kruin en binnentalud '{calculation.Name}' is niet gelukt. {detailedReport}", msgs[3]); StringAssert.StartsWith("De overloop en overslag berekening is uitgevoerd op de tijdelijke locatie", msgs[4]); Assert.AreEqual($"Berekening van '{calculation.Name}' beëindigd.", msgs[5]); }); @@ -484,16 +389,22 @@ } [Test] - public void Finish_InvalidOvertoppingCalculation_DoesNotSetOutputAndNotifyObservers() + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] { + nameof(Finish_InvalidOvertoppingCalculation_DoesNotSetOutputAndNotifyObservers) + })] + public void Finish_InvalidOvertoppingCalculation_DoesNotSetOutputAndNotifyObservers(bool endInFailure, + string lastErrorFileContent) + { // Setup var mockRepository = new MockRepository(); var observerMock = mockRepository.StrictMock(); observerMock.Expect(o => o.UpdateObserver()); var calculator = new TestOvertoppingCalculator { - EndInFailure = true + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent }; var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateOvertoppingCalculator(testDataPath)).Return(calculator); Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs =================================================================== diff -u -r736f04ea6f24399148ab8efd7f3b03ae8f8f56b5 -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 736f04ea6f24399148ab8efd7f3b03ae8f8f56b5) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -357,9 +357,10 @@ } [Test] - [TestCase(true, null)] - [TestCase(false, "An error occurred")] - [TestCase(true, "An error occurred")] + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] + { + nameof(Run_ErrorInCalculation_ActivityStateFailed) + })] public void Run_ErrorInCalculation_ActivityStateFailed(bool endInFailure, string lastErrorFileContent) { // Setup @@ -403,8 +404,12 @@ } [Test] - public void Run_CalculationFailed_OutputNull() + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] { + nameof(Run_CalculationFailed_OutputNull) + })] + public void Run_CalculationFailed_OutputNull(bool endInFailure, string lastErrorFileContent) + { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); @@ -418,7 +423,8 @@ var waveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator { - EndInFailure = true + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent }; int nrOfCalculators = calculation.InputParameters.WaterLevels.Count(); Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs =================================================================== diff -u -r7044ef7d789aec3c3d9dd2c6f38b3699bea0444b -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs) (revision 7044ef7d789aec3c3d9dd2c6f38b3699bea0444b) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationServiceTest.cs) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -40,7 +40,6 @@ using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; using Ringtoets.Revetment.Data; using Ringtoets.Revetment.Service; -using Ringtoets.Revetment.TestUtil; namespace Ringtoets.GrassCoverErosionOutwards.Service.Test { @@ -655,8 +654,12 @@ } [Test] - [TestCaseSource(typeof(WaveConditionsCosineCalculatorTestHelper), nameof(WaveConditionsCosineCalculatorTestHelper.FailingWaveConditionsCosineCalculators))] - public void Calculate_ThreeCalculationsFail_ThrowsHydraRingCalculationExceptionAndLogError(TestWaveConditionsCosineCalculator calculatorThatFails, + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditionsWithReportDetails), new object[] + { + nameof(Calculate_ThreeCalculationsFail_ThrowsHydraRingCalculationExceptionAndLogError) + })] + public void Calculate_ThreeCalculationsFail_ThrowsHydraRingCalculationExceptionAndLogError(bool endInFailure, + string lastErrorFileContent, string detailedReport) { // Setup @@ -665,6 +668,11 @@ Contribution = 20 }; + var calculatorThatFails = new TestWaveConditionsCosineCalculator + { + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent + }; var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)) @@ -736,8 +744,12 @@ } [Test] - [TestCaseSource(typeof(WaveConditionsCosineCalculatorTestHelper), nameof(WaveConditionsCosineCalculatorTestHelper.FailingWaveConditionsCosineCalculators))] - public void Calculate_OneOutOfThreeCalculationsFails_ReturnsOutputsAndLogError(TestWaveConditionsCosineCalculator calculatorThatFails, + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditionsWithReportDetails), new object[] + { + nameof(Calculate_OneOutOfThreeCalculationsFails_ReturnsOutputsAndLogError) + })] + public void Calculate_OneOutOfThreeCalculationsFails_ReturnsOutputsAndLogError(bool endInFailure, + string lastErrorFileContent, string detailedReport) { // Setup @@ -746,6 +758,11 @@ Contribution = 20 }; + var calculatorThatFails = new TestWaveConditionsCosineCalculator + { + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent + }; var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)) Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj =================================================================== diff -u -r260a05afbf1ef2b3466e1588b7ef5fccbe52c43b -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj) (revision 260a05afbf1ef2b3466e1588b7ef5fccbe52c43b) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -103,10 +103,6 @@ {2331235f-1e56-4344-acc2-191c22a39594} Ringtoets.Revetment.Service - - {3706200E-48C6-4B86-B48C-4E45C69ABE95} - Ringtoets.Revetment.Data.TestUtil - {E7225477-577F-4A17-B7EC-6721158E1543} Ringtoets.GrassCoverErosionOutwards.Data Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Integration.Test/HeightStructuresCalculationActivityIntegrationTest.cs =================================================================== diff -u -r736f04ea6f24399148ab8efd7f3b03ae8f8f56b5 -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Integration.Test/HeightStructuresCalculationActivityIntegrationTest.cs (.../HeightStructuresCalculationActivityIntegrationTest.cs) (revision 736f04ea6f24399148ab8efd7f3b03ae8f8f56b5) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Integration.Test/HeightStructuresCalculationActivityIntegrationTest.cs (.../HeightStructuresCalculationActivityIntegrationTest.cs) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -141,9 +141,10 @@ } [Test] - [TestCase(true, "An error occurred")] - [TestCase(true, null)] - [TestCase(false, "An error occurred")] + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] + { + nameof(Run_InvalidCalculationAndRan_PerformValidationAndCalculationAndActivityStateFailed) + })] public void Run_InvalidCalculationAndRan_PerformValidationAndCalculationAndActivityStateFailed(bool endInFailure, string lastErrorFileContent) { // Setup @@ -246,16 +247,21 @@ } [Test] - public void Finish_InvalidCalculationAndRan_DoesNotSetOutputAndNotifyObserversOfCalculation() + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] { + nameof(Finish_InvalidCalculationAndRan_DoesNotSetOutputAndNotifyObserversOfCalculation) + })] + public void Finish_InvalidCalculationAndRan_DoesNotSetOutputAndNotifyObserversOfCalculation(bool endInFailure, string lastErrorFileContent) + { // Setup var mockRepository = new MockRepository(); var observerMock = mockRepository.StrictMock(); observerMock.Expect(o => o.UpdateObserver()); var calculator = new TestStructuresOvertoppingCalculator { - EndInFailure = true + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent }; var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateStructuresOvertoppingCalculator(testDataPath)).Return(calculator); Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Calculator/HydraRingCalculatorTestCaseProvider.cs =================================================================== diff -u --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Calculator/HydraRingCalculatorTestCaseProvider.cs (revision 0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Calculator/HydraRingCalculatorTestCaseProvider.cs (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -0,0 +1,102 @@ +// 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 NUnit.Framework; + +namespace Ringtoets.HydraRing.Calculation.TestUtil.Calculator +{ + /// + /// Class that provide test cases which can be used to test objects using hydra ring calculators. + /// + public static class HydraRingCalculatorTestCaseProvider + { + /// + /// Gets test cases of calculators that will fail when called, including the detailed error message that should be set. + /// + /// The name of the test. + /// The test cases of calculators that will fail when called. + /// + /// + /// [Test] + /// [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditionsWithReportDetails), new object[] + /// { + /// nameof(testName) + /// })] + /// public void testName(bool endInFailure, string lastErrorFileContent, string detailedReport) + /// + /// + public static IEnumerable GetCalculatorFailingConditionsWithReportDetails(string testName) + { + yield return new TestCaseData(false, + "LastErrorFileContent", + $"Bekijk het foutrapport door op details te klikken.{Environment.NewLine}LastErrorFileContent") + .SetName(CreateTestName(testName, "LastErrorFileContent")); + yield return new TestCaseData(true, + null, + "Er is geen foutrapport beschikbaar.") + .SetName(CreateTestName(testName, "EndInFailure")); + yield return new TestCaseData(true, + "LastErrorFileContentAndEndInFailure", + $"Bekijk het foutrapport door op details te klikken.{Environment.NewLine}LastErrorFileContentAndEndInFailure") + .SetName(CreateTestName(testName, "LastErrorFileContentAndEndInFailure")); + } + + /// + /// Gets test cases of calculators that will fail when called. + /// + /// The name of the test. + /// The test cases of calculators that will fail when called. + /// + /// + /// [Test] + /// [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditions), new object[] + /// { + /// nameof(testName) + /// })] + /// public void testName(bool endInFailure, string lastErrorFileContent) + /// + /// + public static IEnumerable GetCalculatorFailingConditions(string testName) + { + yield return new TestCaseData(false, + "LastErrorFileContent") + .SetName(CreateTestName(testName, "LastErrorFileContent")); + yield return new TestCaseData(true, + null) + .SetName(CreateTestName(testName, "EndInFailure")); + yield return new TestCaseData(true, + "LastErrorFileContentAndEndInFailure") + .SetName(CreateTestName(testName, "LastErrorFileContentAndEndInFailure")); + } + + private static string CreateTestName(string testName, string parameter) + { + string parameters = $"({parameter})"; + int newLength = parameters.Length < testName.Length + ? testName.Length - parameters.Length + : testName.Length; + string shortenedTestName = testName.Substring(0, newLength); + return string.Concat(shortenedTestName, parameters); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Ringtoets.HydraRing.Calculation.TestUtil.csproj =================================================================== diff -u -r6a5d7b40b7ba4dcb73e393075338352d194e97c2 -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Ringtoets.HydraRing.Calculation.TestUtil.csproj (.../Ringtoets.HydraRing.Calculation.TestUtil.csproj) (revision 6a5d7b40b7ba4dcb73e393075338352d194e97c2) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Ringtoets.HydraRing.Calculation.TestUtil.csproj (.../Ringtoets.HydraRing.Calculation.TestUtil.csproj) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -53,6 +53,7 @@ Properties\GlobalAssembly.cs + Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/Ringtoets.Revetment.Data.TestUtil.csproj =================================================================== diff -u -r260a05afbf1ef2b3466e1588b7ef5fccbe52c43b -r6c049c504e7f599a8cebb26ae37fcd82b03782f2 --- Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/Ringtoets.Revetment.Data.TestUtil.csproj (.../Ringtoets.Revetment.Data.TestUtil.csproj) (revision 260a05afbf1ef2b3466e1588b7ef5fccbe52c43b) +++ Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/Ringtoets.Revetment.Data.TestUtil.csproj (.../Ringtoets.Revetment.Data.TestUtil.csproj) (revision 6c049c504e7f599a8cebb26ae37fcd82b03782f2) @@ -38,10 +38,6 @@ pdbonly - - ..\..\..\..\packages\NUnit.3.6.0\lib\net40\nunit.framework.dll - True - @@ -52,7 +48,6 @@ - @@ -63,14 +58,6 @@ {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data - - {888d4097-8bc2-4703-9fb1-8744c94d525e} - Ringtoets.HydraRing.Calculation - - - {74CBA865-9338-447F-BAD9-28312446AE84} - Ringtoets.HydraRing.Calculation.TestUtil - {87c2c553-c0bc-40bf-b1ea-b83bff357f27} Ringtoets.Revetment.Data @@ -80,7 +67,6 @@ Copying.licenseheader -