Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationServiceTest.cs =================================================================== diff -u -rb2f617ad0d8d6457422a569685763b9718740560 -re90324ad44fdf6e7af3a755239246727123a1591 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationServiceTest.cs (.../HeightStructuresCalculationServiceTest.cs) (revision b2f617ad0d8d6457422a569685763b9718740560) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/HeightStructuresCalculationServiceTest.cs (.../HeightStructuresCalculationServiceTest.cs) (revision e90324ad44fdf6e7af3a755239246727123a1591) @@ -351,12 +351,59 @@ StructuresOvertoppingCalculationInput actualInput = overtoppingCalculationInputs[0]; HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); + Assert.IsFalse(testStructuresOvertoppingCalculator.IsCanceled); } mockRepository.VerifyAll(); } - private static IAssessmentSection CreateAssessmentSectionStub(IFailureMechanism failureMechanism, MockRepository mockRepository) + [Test] + public void Calculate_CancelCalculationWithValidInput_CancelsCalculator() { + // Setup + var heightStructuresFailureMechanism = new HeightStructuresFailureMechanism(); + + var mockRepository = new MockRepository(); + var assessmentSectionStub = CreateAssessmentSectionStub(heightStructuresFailureMechanism, mockRepository); + mockRepository.ReplayAll(); + + heightStructuresFailureMechanism.AddSection(new FailureMechanismSection("test section", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + })); + + HeightStructuresCalculation calculation = new TestHeightStructuresCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = assessmentSectionStub.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001) + } + }; + + FailureMechanismSection failureMechanismSection = heightStructuresFailureMechanism.Sections.First(); + + using (new HydraRingCalculatorFactoryConfig()) + { + var testStructuresOvertoppingCalculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).StructuresOvertoppingCalculator; + var service = new HeightStructuresCalculationService(); + + // Call + service.Calculate(calculation, + assessmentSectionStub, + failureMechanismSection, + heightStructuresFailureMechanism.GeneralInput, + heightStructuresFailureMechanism.Contribution, + testDataPath); + service.Cancel(); + + // Assert + Assert.IsTrue(testStructuresOvertoppingCalculator.IsCanceled); + } + } + + private static + IAssessmentSection CreateAssessmentSectionStub(IFailureMechanism failureMechanism, MockRepository mockRepository) + { var assessmentSectionStub = mockRepository.Stub(); assessmentSectionStub.Stub(a => a.Id).Return("21"); assessmentSectionStub.Stub(a => a.FailureMechanismContribution).Return(new FailureMechanismContribution(new[]