Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs =================================================================== diff -u -rfcd32c8e949b4581cc20adcaa7cf7639fcb69d20 -r9817574775f6efa570e5456bc011a372920a0bd1 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision fcd32c8e949b4581cc20adcaa7cf7639fcb69d20) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 9817574775f6efa570e5456bc011a372920a0bd1) @@ -27,6 +27,7 @@ using Core.Common.Base.Service; using Core.Common.TestUtil; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.IO.FileImporters; @@ -76,12 +77,17 @@ }; string testFilePath = Path.Combine(testDataPath, "NonExisting.sqlite"); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + mockRepository.ReplayAll(); + var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, testFilePath, assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => activity.Run(); @@ -91,12 +97,13 @@ { string[] msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); - StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); - 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]); + StringAssert.StartsWith($"Validatie van '{calculation.Name}' gestart om: ", msgs[0]); + Assert.AreEqual($"Validatie mislukt: Fout bij het lezen van bestand '{testFilePath}': het bestand bestaat niet.", msgs[1]); + StringAssert.StartsWith($"Validatie van '{calculation.Name}' beëindigd om: ", msgs[2]); }); Assert.AreEqual(ActivityState.Failed, activity.State); } + mockRepository.VerifyAll(); } [Test] @@ -113,7 +120,14 @@ assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + int calculators = calculation.InputParameters.WaterLevels.Count(); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(calculators); + mockRepository.ReplayAll(); + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call Action call = () => activity.Run(); @@ -123,23 +137,24 @@ { string[] msgs = messages.ToArray(); Assert.AreEqual(13, 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]); + StringAssert.StartsWith($"Validatie van '{calculation.Name}' gestart om: ", msgs[0]); + StringAssert.StartsWith($"Validatie van '{calculation.Name}' beëindigd om: ", msgs[1]); + StringAssert.StartsWith($"Berekening van '{calculation.Name}' gestart om: ", msgs[2]); var i = 2; foreach (RoundedDouble waterLevel in calculation.InputParameters.WaterLevels) { - Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' gestart.", calculation.Name, waterLevel), msgs[i + 1]); + Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevel}' gestart.", msgs[i + 1]); StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[i + 2]); - Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd.", calculation.Name, waterLevel), msgs[i + 3]); + Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{waterLevel}' beëindigd.", msgs[i + 3]); i = i + 3; } - StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[12]); + StringAssert.StartsWith($"Berekening van '{calculation.Name}' beëindigd om: ", msgs[12]); }); Assert.AreEqual(ActivityState.Executed, activity.State); } + mockRepository.VerifyAll(); } [Test] @@ -156,7 +171,14 @@ assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + int calculators = calculation.InputParameters.WaterLevels.Count(); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(calculators); + mockRepository.ReplayAll(); + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { var progessTexts = new List(); activity.ProgressChanged += (sender, args) => { progessTexts.Add(activity.ProgressText); }; @@ -168,10 +190,11 @@ RoundedDouble[] waterLevels = calculation.InputParameters.WaterLevels.ToArray(); for (var i = 0; i < waterLevels.Length; i++) { - string text = string.Format("Stap {0} van {1} | Waterstand '{2}' berekenen.", i + 1, waterLevels.Length, waterLevels[i]); + string text = $"Stap {i + 1} van {waterLevels.Length} | Waterstand '{waterLevels[i]}' berekenen."; Assert.AreEqual(text, progessTexts[i]); } } + mockRepository.VerifyAll(); } [Test] @@ -188,13 +211,18 @@ assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + var testWaveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator(); + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(testWaveConditionsCosineCalculator); + mockRepository.ReplayAll(); + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call activity.Run(); // Assert - TestWaveConditionsCosineCalculator testWaveConditionsCosineCalculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; WaveConditionsCosineCalculationInput[] testWaveConditionsInputs = testWaveConditionsCosineCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(3, testWaveConditionsInputs.Length); @@ -221,9 +249,10 @@ generalInput.GeneralWaveConditionsInput.C); HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); - Assert.AreEqual(testDataPath, testWaveConditionsCosineCalculator.HydraulicBoundaryDatabaseDirectory); } } + + mockRepository.VerifyAll(); } [Test] @@ -240,7 +269,12 @@ assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()); + mockRepository.ReplayAll(); + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { activity.ProgressChanged += (sender, args) => { @@ -258,18 +292,20 @@ RoundedDouble firstWaterLevel = calculation.InputParameters.WaterLevels.First(); Assert.AreEqual(7, 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]); + StringAssert.StartsWith($"Validatie van '{calculation.Name}' gestart om: ", msgs[0]); + StringAssert.StartsWith($"Validatie van '{calculation.Name}' beëindigd om: ", msgs[1]); + StringAssert.StartsWith($"Berekening van '{calculation.Name}' gestart om: ", msgs[2]); + Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{firstWaterLevel}' gestart.", msgs[3]); StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[4]); - Assert.AreEqual(string.Format("Berekening '{0}' voor waterstand '{1}' beëindigd.", calculation.Name, firstWaterLevel), msgs[5]); - StringAssert.StartsWith(string.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[6]); + Assert.AreEqual($"Berekening '{calculation.Name}' voor waterstand '{firstWaterLevel}' beëindigd.", msgs[5]); + StringAssert.StartsWith($"Berekening van '{calculation.Name}' beëindigd om: ", msgs[6]); }); Assert.AreEqual(ActivityState.Canceled, activity.State); Assert.IsNull(calculation.Output); } + + mockRepository.VerifyAll(); } [Test] @@ -286,7 +322,14 @@ assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + int calculators = calculation.InputParameters.WaterLevels.Count(); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(calculators); + mockRepository.ReplayAll(); + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call activity.Run(); @@ -295,6 +338,8 @@ Assert.IsNotNull(calculation.Output); Assert.AreEqual(3, calculation.Output.Items.Count()); } + + mockRepository.VerifyAll(); } [Test] @@ -315,19 +360,29 @@ GrassCoverErosionOutwardsWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, testDataPath, failureMechanism, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + var calculator = new TestWaveConditionsCosineCalculator { - TestWaveConditionsCosineCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - calculator.EndInFailure = endInFailure; - calculator.LastErrorFileContent = lastErrorFileContent; + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent + }; + int calculators = calculation.InputParameters.WaterLevels.Count(); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(calculator).Repeat.Times(calculators); + mockRepository.ReplayAll(); + + var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, validFilePath, failureMechanism, assessmentSection); + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) + { // Call activity.Run(); // Assert Assert.AreEqual(ActivityState.Failed, activity.State); } + mockRepository.VerifyAll(); } [Test] @@ -344,17 +399,27 @@ assessmentSection.GrassCoverErosionOutwards, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + var testWaveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator { - TestWaveConditionsCosineCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - calculator.EndInFailure = true; + EndInFailure = true + }; + int calculators = calculation.InputParameters.WaterLevels.Count(); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(testWaveConditionsCosineCalculator).Repeat.Times(calculators); + mockRepository.ReplayAll(); + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) + { // Call activity.Run(); // Assert Assert.IsNull(calculation.Output); } + mockRepository.VerifyAll(); } private static GrassCoverErosionOutwardsWaveConditionsCalculation GetValidCalculation(AssessmentSection assessmentSection)