Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs =================================================================== diff -u -rf27092df1f897798c4a0b24f6fc91f49c9f294ce -r512be2fce60457dd857f28a37a4f4d50562657e5 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision f27092df1f897798c4a0b24f6fc91f49c9f294ce) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 512be2fce60457dd857f28a37a4f4d50562657e5) @@ -30,31 +30,37 @@ using NUnit.Framework; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.DikeProfiles; -using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.IO.FileImporters; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.GrassCoverErosionOutwards.Service; -using Ringtoets.GrassCoverErosionOutwards.Service.Properties; +using Ringtoets.HydraRing.Calculation.Calculator.Factory; +using Ringtoets.HydraRing.Calculation.Data; +using Ringtoets.HydraRing.Calculation.Data.Input.WaveConditions; using Ringtoets.HydraRing.Calculation.TestUtil; -using Ringtoets.HydraRing.Data; +using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; using Ringtoets.Integration.Data; using Ringtoets.Revetment.Data; -using Ringtoets.Revetment.Service; -using Ringtoets.Revetment.Service.TestUtil; namespace Ringtoets.GrassCoverErosionOutwards.Integration.Test { [TestFixture] public class GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest { private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); + private string validFilePath; + [SetUp] + public void SetUp() + { + validFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); + } + [Test] - public void OnRun_NoHydraulicBoundaryDatabase_DoesNotPerformCalculationAndLogsError() + public void Run_NoHydraulicBoundaryDatabase_DoesNotPerformCalculationAndLogsError() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation() + var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { @@ -69,12 +75,13 @@ } }; + var testFilePath = Path.Combine(testDataPath, "NonExisting.sqlite"); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + testFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -85,22 +92,18 @@ var msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); - StringAssert.StartsWith("Validatie mislukt: Er is geen hydraulische randvoorwaardendatabase geïmporteerd.", msgs[1]); + Assert.AreEqual(string.Format("Validatie mislukt: Fout bij het lezen van bestand '{0}': Het bestand bestaat niet.", testFilePath), msgs[1]); StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", calculation.Name), msgs[2]); }); Assert.AreEqual(ActivityState.Failed, activity.State); } } [Test] - public void OnRun_InvalidHydraulicBoundaryDatabase_DoesNotPerformCalculationAndLogsError() + public void Run_InvalidHydraulicBoundaryDatabase_DoesNotPerformCalculationAndLogsError() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() - { - FilePath = Path.Combine(testDataPath, "NonExisting.sqlite") - }; var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation { @@ -117,12 +120,13 @@ } }; + var testFilePath = Path.Combine(testDataPath, "corruptschema.sqlite"); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + testFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -133,15 +137,15 @@ var msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); - StringAssert.StartsWith("Validatie mislukt: Herstellen van de verbinding met de hydraulische randvoorwaardendatabase is mislukt.", msgs[1]); + Assert.AreEqual(string.Format("Validatie mislukt: Fout bij het lezen van bestand '{0}': Kon geen locaties verkrijgen van de database.", testFilePath), msgs[1]); StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", calculation.Name), msgs[2]); }); Assert.AreEqual(ActivityState.Failed, activity.State); } } [Test] - public void OnRun_NoHydraulicBoundaryLocation_DoesNotPerformCalculationAndLogsError() + public void Run_NoHydraulicBoundaryLocation_DoesNotPerformCalculationAndLogsError() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -163,11 +167,11 @@ }; var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -186,7 +190,7 @@ } [Test] - public void OnRun_NoDesignWaterLevel_DoesNotPerformCalculationAndLogsError() + public void Run_NoDesignWaterLevel_DoesNotPerformCalculationAndLogsError() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -209,11 +213,11 @@ }; var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call activity.Run(); @@ -235,7 +239,7 @@ [Test] [TestCase(double.NaN, 10.0)] [TestCase(1.0, double.NaN)] - public void OnRun_NoWaterLevels_DoesNotPerformCalculationAndLogsError(double lowerBoundaryRevetment, double upperBoundaryRevetment) + public void Run_NoWaterLevels_DoesNotPerformCalculationAndLogsError(double lowerBoundaryRevetment, double upperBoundaryRevetment) { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -259,11 +263,11 @@ calculation.InputParameters.HydraulicBoundaryLocation.DesignWaterLevel = (RoundedDouble) 12.0; var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -285,7 +289,7 @@ [TestCase(double.PositiveInfinity)] [TestCase(double.NegativeInfinity)] [TestCase(double.NaN)] - public void OnRun_CalculationWithForeshoreAndDoesNotUseBreakWaterAndHasInvalidBreakWaterHeight_PerformCalculationAndLogStartEnd(double breakWaterHeight) + public void Run_CalculationWithForeshoreAndDoesNotUseBreakWaterAndHasInvalidBreakWaterHeight_PerformCalculationAndLogStartEnd(double breakWaterHeight) { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -297,11 +301,11 @@ calculation.InputParameters.UseBreakWater = false; var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -310,7 +314,7 @@ TestHelper.AssertLogMessages(call, messages => { var msgs = messages.ToArray(); - Assert.AreEqual(10, msgs.Length); + Assert.AreEqual(8, msgs.Length); StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", calculation.Name), msgs[1]); @@ -319,24 +323,23 @@ int i = 2; foreach (var waterLevel in calculation.InputParameters.WaterLevels) { - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' gestart om: ", calculation.Name, waterLevel), msgs[i + 1]); - Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' is niet gelukt.", calculation.Name, waterLevel), msgs[i + 2]); - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd om: ", calculation.Name, waterLevel), msgs[i + 3]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' gestart.", calculation.Name, waterLevel), msgs[i + 1]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd.", calculation.Name, waterLevel), msgs[i + 2]); - i = i + 3; + i = i + 2; } - StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[9]); + StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[7]); }); - Assert.AreEqual(ActivityState.Failed, activity.State); + Assert.AreEqual(ActivityState.Executed, activity.State); } } [Test] [TestCase(double.PositiveInfinity)] [TestCase(double.NegativeInfinity)] [TestCase(double.NaN)] - public void OnRun_CalculationWithForeshoreAndUsesBreakWaterAndHasInvalidBreakWaterHeight_DoesNotPerformCalculationAndLogStartEnd(double breakWaterHeight) + public void Run_CalculationWithForeshoreAndUsesBreakWaterAndHasInvalidBreakWaterHeight_DoesNotPerformCalculationAndLogStartEnd(double breakWaterHeight) { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -348,11 +351,11 @@ calculation.InputParameters.UseBreakWater = true; var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -375,7 +378,7 @@ [TestCase(CalculationType.NoForeshore)] [TestCase(CalculationType.ForeshoreWithoutBreakWater)] [TestCase(CalculationType.ForeshoreWithValidBreakWater)] - public void OnRun_CalculationWithValidInputConditionsAndValidateForeshore_LogCalculationStartAndErrorAndEnd(CalculationType calculationType) + public void Run_CalculationWithValidInputConditionsAndValidForeshore_LogCalculationStartAndErrorAndEnd(CalculationType calculationType) { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -399,11 +402,11 @@ } var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -412,7 +415,7 @@ TestHelper.AssertLogMessages(call, messages => { var msgs = messages.ToArray(); - Assert.AreEqual(10, msgs.Length); + Assert.AreEqual(8, msgs.Length); StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", calculation.Name), msgs[1]); @@ -421,21 +424,20 @@ int i = 2; foreach (var waterLevel in calculation.InputParameters.WaterLevels) { - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' gestart om: ", calculation.Name, waterLevel), msgs[i + 1]); - Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' is niet gelukt.", calculation.Name, waterLevel), msgs[i + 2]); - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd om: ", calculation.Name, waterLevel), msgs[i + 3]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' gestart.", calculation.Name, waterLevel), msgs[i + 1]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd.", calculation.Name, waterLevel), msgs[i + 2]); - i = i + 3; + i = i + 2; } - StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[9]); + StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[7]); }); - Assert.AreEqual(ActivityState.Failed, activity.State); + Assert.AreEqual(ActivityState.Executed, activity.State); } } [Test] - public void OnRun_CalculationWithValidCalculation_PerformCalculationAndLogStartAndEnd() + public void Run_CalculationWithValidCalculation_PerformCalculationAndLogStartAndEnd() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -444,11 +446,11 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new WaveConditionsCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { // Call Action call = () => activity.Run(); @@ -457,25 +459,27 @@ TestHelper.AssertLogMessages(call, messages => { var msgs = messages.ToArray(); - Assert.AreEqual(8, msgs.Length); - StringAssert.StartsWith(string.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[0]); + Assert.AreEqual(10, msgs.Length); + StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); + StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", calculation.Name), msgs[1]); + StringAssert.StartsWith(string.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[2]); - int i = 0; + int i = 2; foreach (var waterLevel in calculation.InputParameters.WaterLevels) { - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' gestart om: ", calculation.Name, waterLevel), msgs[i + 1]); - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd om: ", calculation.Name, waterLevel), msgs[i + 2]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' gestart.", calculation.Name, waterLevel), msgs[i + 1]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd.", calculation.Name, waterLevel), msgs[i + 2]); i = i + 2; } - StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[7]); + StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[9]); }); Assert.AreEqual(ActivityState.Executed, activity.State); } } [Test] - public void OnRun_Always_SetProgressTexts() + public void Run_Always_SetProgressTexts() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -484,11 +488,11 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { List progessTexts = new List(); activity.ProgressChanged += (sender, args) => { progessTexts.Add(activity.ProgressText); }; @@ -500,14 +504,14 @@ var waterLevels = calculation.InputParameters.WaterLevels.ToArray(); for (var i = 0; i < waterLevels.Length; i++) { - var text = string.Format(Resources.GrassCoverErosionOutwardsWaveConditionsCalculationActivity_OnRun_Calculate_waterlevel_0_, waterLevels[i]); - Assert.AreEqual(progessTexts[i], text); + var text = string.Format("Stap {0} van {1} | Waterstand '{2}' berekenen.", i + 1, waterLevels.Length, waterLevels[i]); + Assert.AreEqual(text, progessTexts[i]); } } } [Test] - public void OnRun_Always_InputPropertiesCorrectlySendToService() + public void Run_Always_InputPropertiesCorrectlySendToService() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -516,34 +520,40 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new WaveConditionsCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { - var testService = (TestWaveConditionsCalculationService) WaveConditionsCalculationService.Instance; - // Call activity.Run(); // Assert - TestWaveConditionsCalculationServiceInput[] testWaveConditionsInputs = testService.Inputs.ToArray(); + var testWaveConditionsCosineCalculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; + WaveConditionsCosineCalculationInput[] testWaveConditionsInputs = testWaveConditionsCosineCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(3, testWaveConditionsInputs.Length); - for (int i = 0; i < testWaveConditionsInputs.Length; i++) + int waterLevelIndex = 0; + foreach (WaveConditionsCosineCalculationInput actualInput in testWaveConditionsInputs) { GeneralGrassCoverErosionOutwardsInput generalInput = assessmentSection.GrassCoverErosionOutwards.GeneralInput; - Assert.AreEqual(calculation.InputParameters.WaterLevels.ToArray()[i], testWaveConditionsInputs[i].WaterLevel); - Assert.AreEqual(generalInput.GeneralWaveConditionsInput.A, testWaveConditionsInputs[i].A, generalInput.GeneralWaveConditionsInput.A.GetAccuracy()); - Assert.AreEqual(generalInput.GeneralWaveConditionsInput.B, testWaveConditionsInputs[i].B, generalInput.GeneralWaveConditionsInput.B.GetAccuracy()); - Assert.AreEqual(generalInput.GeneralWaveConditionsInput.C, testWaveConditionsInputs[i].C, generalInput.GeneralWaveConditionsInput.C.GetAccuracy()); - Assert.AreEqual(assessmentSection.GrassCoverErosionOutwards.CalculationBeta(assessmentSection), testWaveConditionsInputs[i].Norm); - Assert.AreSame(calculation.InputParameters, testWaveConditionsInputs[i].WaveConditionsInput); - Assert.AreEqual(testDataPath, testWaveConditionsInputs[i].HlcdDirectory); - Assert.AreEqual(assessmentSection.Id, testWaveConditionsInputs[i].RingId); - Assert.AreEqual(calculation.Name, testWaveConditionsInputs[i].Name); + var input = calculation.InputParameters; + var expectedInput = new WaveConditionsCosineCalculationInput(1, + input.Orientation, + input.HydraulicBoundaryLocation.Id, + assessmentSection.GrassCoverErosionOutwards.CalculationBeta(assessmentSection), + input.ForeshoreProfile.Geometry.Select(c => new HydraRingForelandPoint(c.X, c.Y)), + new HydraRingBreakWater((int) input.BreakWater.Type, input.BreakWater.Height), + calculation.InputParameters.WaterLevels.ElementAt(waterLevelIndex++), + generalInput.GeneralWaveConditionsInput.A, + generalInput.GeneralWaveConditionsInput.B, + generalInput.GeneralWaveConditionsInput.C); + + HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); + Assert.AreEqual(testDataPath, testWaveConditionsCosineCalculator.HydraulicBoundaryDatabaseDirectory); + Assert.AreEqual(assessmentSection.Id, testWaveConditionsCosineCalculator.RingId); } } } @@ -558,11 +568,11 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new WaveConditionsCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { activity.ProgressChanged += (sender, args) => { @@ -579,54 +589,22 @@ string[] msgs = messages.ToArray(); RoundedDouble firstWaterLevel = calculation.InputParameters.WaterLevels.First(); - Assert.AreEqual(4, msgs.Length); - StringAssert.StartsWith(string.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[0]); - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' gestart om: ", calculation.Name, firstWaterLevel), msgs[1]); - StringAssert.StartsWith(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd om: ", calculation.Name, firstWaterLevel), msgs[2]); - StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[3]); + Assert.AreEqual(6, msgs.Length); + StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); + StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", calculation.Name), msgs[1]); + StringAssert.StartsWith(string.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[2]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' gestart.", calculation.Name, firstWaterLevel), msgs[3]); + Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd.", calculation.Name, firstWaterLevel), msgs[4]); + StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[5]); }); Assert.AreEqual(ActivityState.Canceled, activity.State); - } - } - - [Test] - public void OnFinish_WhenCancelled_OutputNull() - { - // Setup - var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - ImportHydraulicBoundaryDatabase(assessmentSection); - - GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); - - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, - assessmentSection.GrassCoverErosionOutwards, - assessmentSection); - - using (new WaveConditionsCalculationServiceConfig()) - { - activity.ProgressChanged += (sender, args) => - { - if (activity.State != ActivityState.Canceled) - { - activity.Cancel(); - } - }; - - activity.Run(); - - // Call - activity.Finish(); - - // Assert - Assert.AreEqual(ActivityState.Canceled, activity.State); Assert.IsNull(calculation.Output); } } [Test] - public void OnFinish_CalculationPerformed_SetsOutput() + public void Run_CalculationPerformed_SetsOutput() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -635,25 +613,23 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new WaveConditionsCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { + // Call activity.Run(); - // Call - activity.Finish(); - // Assert Assert.IsNotNull(calculation.Output); Assert.AreEqual(3, calculation.Output.Items.Count()); } } [Test] - public void OnFinish_CalculationFailed_OutputNull() + public void Run_CalculationFailed_OutputNull() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -662,22 +638,23 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - testDataPath, + validFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculationServiceConfig()) + using (new HydraRingCalculatorFactoryConfig()) { - activity.Run(); + var calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; + calculator.EndInFailure = true; // Call - activity.Finish(); + activity.Run(); // Assert Assert.IsNull(calculation.Output); } } - + public enum CalculationType { NoForeshore, @@ -717,8 +694,6 @@ private void ImportHydraulicBoundaryDatabase(AssessmentSection assessmentSection) { - string validFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); - using (var importer = new HydraulicBoundaryDatabaseImporter()) { importer.Import(assessmentSection, validFilePath);