Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructuresCalculationServiceTest.cs =================================================================== diff -u -rf88343c0590cb04c7135ce141872940e59325927 -r5c3b4709354512498034462a17e7da45dc811fa4 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructuresCalculationServiceTest.cs (.../ClosingStructuresCalculationServiceTest.cs) (revision f88343c0590cb04c7135ce141872940e59325927) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructuresCalculationServiceTest.cs (.../ClosingStructuresCalculationServiceTest.cs) (revision 5c3b4709354512498034462a17e7da45dc811fa4) @@ -554,6 +554,8 @@ var mockRepository = new MockRepository(); var assessmentSectionStub = mockRepository.Stub(); + + var calculatorFactory = mockRepository.Stub(); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -566,20 +568,15 @@ var service = new ClosingStructuresCalculationService(); - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; - // Call TestDelegate call = () => service.Calculate(calculation, assessmentSectionStub, closingStructuresFailureMechanism, validFilePath); - StructuresClosureCalculationInput[] calculationInputs = calculator.ReceivedInputs.ToArray(); - // Assert - Assert.AreEqual(0, calculationInputs.Length); const string expectedMessage = "The value of argument 'calculation' (100) is invalid for Enum type 'ClosingStructureInflowModelType'."; string paramName = TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage).ParamName; @@ -600,6 +597,11 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(closingStructuresFailureMechanism, mockRepository); + + var testStructuresClosureCalculator = new TestStructuresClosureCalculator(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(testStructuresClosureCalculator); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -615,20 +617,17 @@ calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(useBreakWater); } - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; - // Call new ClosingStructuresCalculationService().Calculate(calculation, assessmentSectionStub, closingStructuresFailureMechanism, validFilePath); // Assert - StructuresClosureCalculationInput[] calculationInputs = calculator.ReceivedInputs.ToArray(); + StructuresClosureCalculationInput[] calculationInputs = testStructuresClosureCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(1, calculationInputs.Length); - Assert.AreEqual(testDataPath, calculator.HydraulicBoundaryDatabaseDirectory); GeneralClosingStructuresInput generalInput = closingStructuresFailureMechanism.GeneralInput; ClosingStructuresInput input = calculation.InputParameters; @@ -660,7 +659,7 @@ var actualInput = (StructuresClosureVerticalWallCalculationInput) calculationInputs[0]; HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); - Assert.IsFalse(calculator.IsCanceled); + Assert.IsFalse(testStructuresClosureCalculator.IsCanceled); } mockRepository.VerifyAll(); } @@ -677,6 +676,11 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(closingStructuresFailureMechanism, mockRepository); + + var testStructuresClosureCalculator = new TestStructuresClosureCalculator(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(testStructuresClosureCalculator); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -693,20 +697,17 @@ calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(useBreakWater); } - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; - // Call new ClosingStructuresCalculationService().Calculate(calculation, assessmentSectionStub, closingStructuresFailureMechanism, validFilePath); // Assert - StructuresClosureCalculationInput[] calculationInputs = calculator.ReceivedInputs.ToArray(); + StructuresClosureCalculationInput[] calculationInputs = testStructuresClosureCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(1, calculationInputs.Length); - Assert.AreEqual(testDataPath, calculator.HydraulicBoundaryDatabaseDirectory); GeneralClosingStructuresInput generalInput = closingStructuresFailureMechanism.GeneralInput; ClosingStructuresInput input = calculation.InputParameters; @@ -737,7 +738,7 @@ var actualInput = (StructuresClosureLowSillCalculationInput) calculationInputs[0]; HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); - Assert.IsFalse(calculator.IsCanceled); + Assert.IsFalse(testStructuresClosureCalculator.IsCanceled); } mockRepository.VerifyAll(); } @@ -754,6 +755,10 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(closingStructuresFailureMechanism, mockRepository); + var testStructuresClosureCalculator = new TestStructuresClosureCalculator(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(testStructuresClosureCalculator); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -770,20 +775,17 @@ calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(useBreakWater); } - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; - // Call new ClosingStructuresCalculationService().Calculate(calculation, assessmentSectionStub, closingStructuresFailureMechanism, validFilePath); // Assert - StructuresClosureCalculationInput[] calculationInputs = calculator.ReceivedInputs.ToArray(); + StructuresClosureCalculationInput[] calculationInputs = testStructuresClosureCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(1, calculationInputs.Length); - Assert.AreEqual(testDataPath, calculator.HydraulicBoundaryDatabaseDirectory); GeneralClosingStructuresInput generalInput = closingStructuresFailureMechanism.GeneralInput; ClosingStructuresInput input = calculation.InputParameters; @@ -812,7 +814,7 @@ var actualInput = (StructuresClosureFloodedCulvertCalculationInput) calculationInputs[0]; HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); - Assert.IsFalse(calculator.IsCanceled); + Assert.IsFalse(testStructuresClosureCalculator.IsCanceled); } mockRepository.VerifyAll(); } @@ -834,6 +836,9 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(closingStructuresFailureMechanism, mockRepository); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(new TestStructuresClosureCalculator()); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -864,7 +869,7 @@ } // Call - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { Action call = () => new ClosingStructuresCalculationService().Calculate(calculation, assessmentSectionStub, @@ -900,6 +905,10 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(closingStructuresFailureMechanism, mockRepository); + var testStructuresClosureCalculator = new TestStructuresClosureCalculator(); + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(testStructuresClosureCalculator); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -910,11 +919,10 @@ } }; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; var service = new ClosingStructuresCalculationService(); - calculator.CalculationFinishedHandler += (s, e) => service.Cancel(); + testStructuresClosureCalculator.CalculationFinishedHandler += (s, e) => service.Cancel(); // Call service.Calculate(calculation, @@ -924,7 +932,7 @@ // Assert Assert.IsNull(calculation.Output); - Assert.IsTrue(calculator.IsCanceled); + Assert.IsTrue(testStructuresClosureCalculator.IsCanceled); } mockRepository.VerifyAll(); } @@ -943,6 +951,14 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); + var testStructuresClosureCalculator = new TestStructuresClosureCalculator + { + LastErrorFileContent = "An error occurred", + EndInFailure = true + }; + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(testStructuresClosureCalculator); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -953,12 +969,8 @@ } }; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; - calculator.LastErrorFileContent = "An error occurred"; - calculator.EndInFailure = true; - var exceptionThrown = false; // Call @@ -1007,6 +1019,13 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); + var testStructuresClosureCalculator = new TestStructuresClosureCalculator + { + EndInFailure = true + }; + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(testStructuresClosureCalculator); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -1017,11 +1036,8 @@ } }; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; - calculator.EndInFailure = true; - var exceptionThrown = false; // Call @@ -1070,6 +1086,14 @@ var mockRepository = new MockRepository(); IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); + var testStructuresClosureCalculator = new TestStructuresClosureCalculator + { + EndInFailure = false, + LastErrorFileContent = "An error occurred" + }; + var calculatorFactory = mockRepository.Stub(); + calculatorFactory.Expect(cf => cf.CreateStructuresClosureCalculator(testDataPath)) + .Return(testStructuresClosureCalculator); mockRepository.ReplayAll(); var calculation = new TestClosingStructuresCalculation @@ -1080,12 +1104,8 @@ } }; - using (new HydraRingCalculatorFactoryConfig()) + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - TestStructuresClosureCalculator calculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresClosureCalculator; - calculator.EndInFailure = false; - calculator.LastErrorFileContent = "An error occurred"; - var exceptionThrown = false; string exceptionMessage = string.Empty; @@ -1118,7 +1138,6 @@ }); Assert.IsTrue(exceptionThrown); Assert.IsNull(calculation.Output); - Assert.AreEqual(calculator.LastErrorFileContent, exceptionMessage); } mockRepository.VerifyAll(); }