Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs =================================================================== diff -u -r3aab8e1af1fbdee85e2d1edb325f2d0b9d4e2418 -r0f4f01f490bf62e20c119ef3eb015385c0bdcf9d --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 3aab8e1af1fbdee85e2d1edb325f2d0b9d4e2418) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationActivityIntegrationTest.cs) (revision 0f4f01f490bf62e20c119ef3eb015385c0bdcf9d) @@ -138,63 +138,6 @@ } [Test] - public void Run_CalculationWithValidCalculation_PerformCalculationAndLogStartAndEnd() - { - // Setup - IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); - GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); - - var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); - - var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, - validFilePath, - failureMechanism, - assessmentSection); - - RoundedDouble[] waterLevels = GetWaterLevels(calculation, assessmentSection).ToArray(); - int nrOfCalculators = waterLevels.Length; - - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)) - .Return(new TestWaveConditionsCosineCalculator()) - .Repeat - .Times(nrOfCalculators); - mockRepository.ReplayAll(); - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => activity.Run(); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(14, msgs.Length); - Assert.AreEqual($"Golfcondities berekenen voor '{calculation.Name}' is gestart.", msgs[0]); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - CalculationServiceTestHelper.AssertCalculationStartMessage(msgs[3]); - - var i = 3; - foreach (RoundedDouble waterLevel in waterLevels) - { - Assert.AreEqual($"Berekening voor waterstand '{waterLevel}' is gestart.", msgs[i + 1]); - StringAssert.StartsWith("Golfcondities berekening is uitgevoerd op de tijdelijke locatie", msgs[i + 2]); - Assert.AreEqual($"Berekening voor waterstand '{waterLevel}' is beƫindigd.", msgs[i + 3]); - i = i + 3; - } - - CalculationServiceTestHelper.AssertCalculationEndMessage(msgs[13]); - }); - Assert.AreEqual(ActivityState.Executed, activity.State); - } - - mockRepository.VerifyAll(); - } - - [Test] public void Run_Always_SetProgressTexts() { // Setup @@ -363,6 +306,48 @@ } [Test] + public void Run_WhenCanceled_OutputNull() + { + // Setup + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); + + var activity = new GrassCoverErosionOutwardsWaveConditionsCalculationActivity(calculation, + validFilePath, + failureMechanism, + assessmentSection); + + var mockRepository = new MockRepository(); + var calculatorFactory = mockRepository.StrictMock(); + calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()); + mockRepository.ReplayAll(); + + using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) + { + 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); + } + + mockRepository.VerifyAll(); + } + + [Test] public void Run_CalculationPerformed_SetsOutput() { // Setup