Index: Core/Common/src/Core.Common.Base/Service/Activity.cs =================================================================== diff -u -rf421ea0848e81715819aa0cdb2e2129bba81c089 -rf555a1dfa9735c55723ef3da1a07e5ed811ed3ab --- Core/Common/src/Core.Common.Base/Service/Activity.cs (.../Activity.cs) (revision f421ea0848e81715819aa0cdb2e2129bba81c089) +++ Core/Common/src/Core.Common.Base/Service/Activity.cs (.../Activity.cs) (revision f555a1dfa9735c55723ef3da1a07e5ed811ed3ab) @@ -113,7 +113,12 @@ /// public void Finish() { - OnFinish(); + if (State == ActivityState.None) + { + return; + } + + ChangeState(OnFinish, State == ActivityState.Executed ? ActivityState.Finished : State); // If relevant, preserve the previous state } /// @@ -169,13 +174,11 @@ State = stateAfter; } + /// + /// This method will log the current state of the . + /// public void LogState() { - if (State == ActivityState.None) - { - return; - } - if (State == ActivityState.Executed) { log.InfoFormat(Resources.Activity_Finish_ActivityDescription_0_has_succeeded, Description); Index: Core/Common/test/Core.Common.Base.Test/Service/ActivityTest.cs =================================================================== diff -u -rd90afe0704aff148ea3b453306dc97e2db02a75d -rf555a1dfa9735c55723ef3da1a07e5ed811ed3ab --- Core/Common/test/Core.Common.Base.Test/Service/ActivityTest.cs (.../ActivityTest.cs) (revision d90afe0704aff148ea3b453306dc97e2db02a75d) +++ Core/Common/test/Core.Common.Base.Test/Service/ActivityTest.cs (.../ActivityTest.cs) (revision f555a1dfa9735c55723ef3da1a07e5ed811ed3ab) @@ -113,75 +113,61 @@ } [Test] - public void Finish_ActivityWithExecutedStateAndSuccessfulFinish_MessageIsSendToLogAndStateIsChangedToFinished() - { - // Setup - var activity = new SimpleActivity(false, false, false, ActivityState.Executed); - - // Call / Assert - TestHelper.AssertLogMessagesAreGenerated(() => activity.Finish(), new[] - { - "Uitvoeren van berekening is gelukt." - }); - - Assert.AreEqual(ActivityState.Finished, activity.State); - } - - [Test] [TestCase(ActivityState.Failed, "Uitvoeren van berekening is mislukt.")] [TestCase(ActivityState.Canceled, "Uitvoeren van berekening is geannuleerd.")] [TestCase(ActivityState.Skipped, "Uitvoeren van berekening is overgeslagen.")] - public void Finish_ActivityWithSpecificStateAndSuccessfulFinish_MessageIsSendToLogAndStateIsPreserved(ActivityState state, string message) + [TestCase(ActivityState.Executed, "Uitvoeren van berekening is gelukt.")] + public void LogState_ActivityWithSpecificState_MessageIsSendToLog(ActivityState state, string message) { // Setup var activity = new SimpleActivity(false, false, false, state); // Call / Assert - TestHelper.AssertLogMessagesAreGenerated(() => activity.Finish(), new[] + TestHelper.AssertLogMessagesAreGenerated(() => activity.LogState(), new[] { message }); - - Assert.AreEqual(state, activity.State); } [Test] - public void Finish_ActivityWithNoneStateAndSuccessfulFinish_NoMessageIsSendToLogAndStateIsPreserved() + public void Finish_ActivityWithNoneStateAndSuccessfulFinish_StateIsPreserved() { // Setup var activity = new SimpleActivity(false, false, false); - // Call / Assert - TestHelper.AssertLogMessagesCount(() => activity.Finish(), 0); + // Call + activity.Finish(); + + // Assert Assert.AreEqual(ActivityState.None, activity.State); } [Test] [TestCase(ActivityState.Executed)] [TestCase(ActivityState.Canceled)] [TestCase(ActivityState.Skipped)] - public void Finish_ActivityWithSpecificStateAndFailingFinish_MessageIsSendToLogAndStateIsChangedToFailed(ActivityState state) + public void Finish_ActivityWithSpecificStateAndFailingFinish_StateIsChangedToFailed(ActivityState state) { // Setup var activity = new SimpleActivity(false, false, true, state); - // Call / Assert - TestHelper.AssertLogMessagesAreGenerated(() => activity.Finish(), new[] - { - "Uitvoeren van berekening is mislukt." - }); + // Call + activity.Finish(); + // Assert Assert.AreEqual(ActivityState.Failed, activity.State); } [Test] - public void Finish_ActivityWithNoneStateAndFailingFinish_NoMessageIsSendToLogAndStateIsPreserved() + public void Finish_ActivityWithNoneStateAndFailingFinish_StateIsPreserved() { // Setup var activity = new SimpleActivity(false, false, true); - // Call / Assert - TestHelper.AssertLogMessagesCount(() => activity.Finish(), 0); + // Call + activity.Finish(); + + // Assert Assert.AreEqual(ActivityState.None, activity.State); }