Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj =================================================================== diff -u -r08b3bcba439831d547684b194ecdf903f2519700 -r9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj) (revision 08b3bcba439831d547684b194ecdf903f2519700) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj) (revision 9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35) @@ -42,6 +42,10 @@ ..\..\..\..\packages\NUnit.3.6.0\lib\net40\nunit.framework.dll True + + ..\..\..\..\packages\RhinoMocks.3.6.1\lib\net\Rhino.Mocks.dll + True + Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/WaveImpactAsphaltCoverWaveConditionsCalculationActivityIntegrationTest.cs =================================================================== diff -u -r08d25a2d4cd349395730ef39d3abf2cc51c30508 -r9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/WaveImpactAsphaltCoverWaveConditionsCalculationActivityIntegrationTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationActivityIntegrationTest.cs) (revision 08d25a2d4cd349395730ef39d3abf2cc51c30508) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/WaveImpactAsphaltCoverWaveConditionsCalculationActivityIntegrationTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationActivityIntegrationTest.cs) (revision 9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35) @@ -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; @@ -80,7 +81,14 @@ assessmentSection.WaveImpactAsphaltCover, 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(); @@ -90,12 +98,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] @@ -112,7 +121,14 @@ assessmentSection.WaveImpactAsphaltCover, 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)) { var progessTexts = new List(); activity.ProgressChanged += (sender, args) => { progessTexts.Add(activity.ProgressText); }; @@ -124,10 +140,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] @@ -144,13 +161,20 @@ assessmentSection.WaveImpactAsphaltCover, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + var testWaveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator(); + 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 - TestWaveConditionsCosineCalculator testWaveConditionsCosineCalculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; WaveConditionsCosineCalculationInput[] testWaveConditionsInputs = testWaveConditionsCosineCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(3, testWaveConditionsInputs.Length); @@ -172,9 +196,10 @@ generalInput.C); HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); - Assert.AreEqual(testDataPath, testWaveConditionsCosineCalculator.HydraulicBoundaryDatabaseDirectory); } } + + mockRepository.VerifyAll(); } [Test] @@ -191,7 +216,12 @@ assessmentSection.WaveImpactAsphaltCover, 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) => { @@ -209,17 +239,19 @@ 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); } + + mockRepository.VerifyAll(); } [Test] @@ -236,17 +268,26 @@ assessmentSection.WaveImpactAsphaltCover, 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(); } [Test] @@ -267,19 +308,29 @@ WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection); - var activity = new WaveImpactAsphaltCoverWaveConditionsCalculationActivity(calculation, testDataPath, failureMechanism, assessmentSection); - using (new HydraRingCalculatorFactoryConfig()) + int calculators = calculation.InputParameters.WaterLevels.Count(); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.Stub(); + var testWaveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator { - TestWaveConditionsCosineCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).WaveConditionsCosineCalculator; - calculator.EndInFailure = endInFailure; - calculator.LastErrorFileContent = lastErrorFileContent; + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent + }; + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(testWaveConditionsCosineCalculator).Repeat.Times(calculators); + mockRepository.ReplayAll(); + var activity = new WaveImpactAsphaltCoverWaveConditionsCalculationActivity(calculation, validFilePath, failureMechanism, assessmentSection); + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) + { // Call activity.Run(); // Assert Assert.AreEqual(ActivityState.Failed, activity.State); } + + mockRepository.VerifyAll(); } private static WaveImpactAsphaltCoverWaveConditionsCalculation GetValidCalculation(AssessmentSection assessmentSection) Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/packages.config =================================================================== diff -u -r08d25a2d4cd349395730ef39d3abf2cc51c30508 -r9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/packages.config (.../packages.config) (revision 08d25a2d4cd349395730ef39d3abf2cc51c30508) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/packages.config (.../packages.config) (revision 9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35) @@ -1,4 +1,5 @@ - + \ No newline at end of file Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj =================================================================== diff -u -rec15ff35b39f333c422b8ca6988c34bd8573f134 -r9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj) (revision ec15ff35b39f333c422b8ca6988c34bd8573f134) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj) (revision 9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35) @@ -127,6 +127,10 @@ {4843D6E5-066F-4795-94F5-1D53932DD03C} Ringtoets.Common.Data.TestUtil + + {888D4097-8BC2-4703-9FB1-8744C94D525E} + Ringtoets.HydraRing.Calculation + {74CBA865-9338-447F-BAD9-28312446AE84} Ringtoets.HydraRing.Calculation.TestUtil Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationContextTreeNodeInfoTest.cs =================================================================== diff -u -r7f8860b7aa23930fb9f49e9a28d8ebb709395cb5 -r9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationContextTreeNodeInfoTest.cs) (revision 7f8860b7aa23930fb9f49e9a28d8ebb709395cb5) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationContextTreeNodeInfoTest.cs) (revision 9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35) @@ -43,6 +43,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; +using Ringtoets.HydraRing.Calculation.Calculator.Factory; using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; using Ringtoets.Revetment.Data; using Ringtoets.WaveImpactAsphaltCover.Data; @@ -1231,11 +1232,14 @@ gui.Stub(g => g.Get(context, treeViewControl)).Return(menuBuilderMock); gui.Stub(g => g.MainWindow).Return(mainWindow); + int calculators = calculation.InputParameters.WaterLevels.Count(); + var calculatorFactory = mocks.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(calculators); mocks.ReplayAll(); plugin.Gui = gui; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(context, null, treeViewControl)) { // When Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r41da80335e9db4b38a470de5b247f759ca497997 -r9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 41da80335e9db4b38a470de5b247f759ca497997) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 9633ab5f0a64cc0d7a285bdaeb7756c3aa9bdc35) @@ -42,6 +42,7 @@ using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms; +using Ringtoets.HydraRing.Calculation.Calculator.Factory; using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; using Ringtoets.Revetment.Data; using Ringtoets.WaveImpactAsphaltCover.Data; @@ -932,9 +933,12 @@ gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + int calculators = failureMechanism.Calculations.Cast().Sum(c => c.InputParameters.WaterLevels.Count()); + var calculatorFactory = mocks.Stub(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(hrdPath)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(calculators); mocks.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // Call @@ -985,9 +989,10 @@ gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + var calculatorFactory = mocks.Stub(); mocks.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // Call @@ -1030,9 +1035,10 @@ gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + var calculatorFactory = mocks.Stub(); mocks.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // Call @@ -1102,9 +1108,10 @@ gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + var calculatorFactory = mocks.Stub(); mocks.ReplayAll(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // Call