diff --git a/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj b/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj index dc2b6ad13..2347a37bf 100644 --- a/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj +++ b/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj @@ -67,10 +67,7 @@ - - - diff --git a/NzbDrone.Common.Test/MessagingTests/CommandEqualityComparerFixture.cs b/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs similarity index 98% rename from NzbDrone.Common.Test/MessagingTests/CommandEqualityComparerFixture.cs rename to NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs index 2f62655ab..f4ffc3614 100644 --- a/NzbDrone.Common.Test/MessagingTests/CommandEqualityComparerFixture.cs +++ b/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs @@ -4,7 +4,7 @@ using NzbDrone.Core.IndexerSearch; using NzbDrone.Core.MediaFiles.Commands; using NzbDrone.Core.Messaging.Commands; -namespace NzbDrone.Common.Test.MessagingTests +namespace NzbDrone.Core.Test.Messaging.Commands { [TestFixture] public class CommandEqualityComparerFixture diff --git a/NzbDrone.Common.Test/MessagingTests/CommandExecutorFixture.cs b/NzbDrone.Core.Test/Messaging/Commands/CommandExecutorFixture.cs similarity index 77% rename from NzbDrone.Common.Test/MessagingTests/CommandExecutorFixture.cs rename to NzbDrone.Core.Test/Messaging/Commands/CommandExecutorFixture.cs index 21396dc8e..650f81224 100644 --- a/NzbDrone.Common.Test/MessagingTests/CommandExecutorFixture.cs +++ b/NzbDrone.Core.Test/Messaging/Commands/CommandExecutorFixture.cs @@ -2,12 +2,13 @@ using System.Collections.Generic; using Moq; using NUnit.Framework; -using NzbDrone.Core.Messaging; +using NzbDrone.Common; using NzbDrone.Core.Messaging.Commands; using NzbDrone.Core.Messaging.Commands.Tracking; +using NzbDrone.Core.Messaging.Events; using NzbDrone.Test.Common; -namespace NzbDrone.Common.Test.MessagingTests +namespace NzbDrone.Core.Test.Messaging.Commands { [TestFixture] public class CommandExecutorFixture : TestBase @@ -77,6 +78,29 @@ namespace NzbDrone.Common.Test.MessagingTests Assert.Throws(() => Subject.PublishCommand(commandA)); } + + + [Test] + public void broken_executor_should_publish_executed_event() + { + var commandA = new CommandA(); + + _executorA.Setup(c => c.Execute(It.IsAny())) + .Throws(new NotImplementedException()); + + Assert.Throws(() => Subject.PublishCommand(commandA)); + + VerifyEventPublished(); + } + + [Test] + public void should_publish_executed_event_on_success() + { + var commandA = new CommandA(); + Subject.PublishCommand(commandA); + + VerifyEventPublished(); + } } public class CommandA : Command diff --git a/NzbDrone.Common.Test/MessagingTests/CommandBaseFixture.cs b/NzbDrone.Core.Test/Messaging/Commands/CommandFixture.cs similarity index 80% rename from NzbDrone.Common.Test/MessagingTests/CommandBaseFixture.cs rename to NzbDrone.Core.Test/Messaging/Commands/CommandFixture.cs index bca26ed90..a75fc2224 100644 --- a/NzbDrone.Common.Test/MessagingTests/CommandBaseFixture.cs +++ b/NzbDrone.Core.Test/Messaging/Commands/CommandFixture.cs @@ -2,10 +2,10 @@ using NUnit.Framework; using NzbDrone.Core.Update.Commands; -namespace NzbDrone.Common.Test.MessagingTests +namespace NzbDrone.Core.Test.Messaging.Commands { [TestFixture] - public class CommandBaseFixture + public class CommandFixture { [Test] public void default_values() @@ -15,6 +15,5 @@ namespace NzbDrone.Common.Test.MessagingTests command.Id.Should().NotBe(0); command.Name.Should().Be("ApplicationUpdate"); } - } } \ No newline at end of file diff --git a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 2235812d2..38660dd5d 100644 --- a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -147,6 +147,9 @@ + + + diff --git a/NzbDrone.Core/Jobs/JobRepository.cs b/NzbDrone.Core/Jobs/JobRepository.cs index 726f06963..8e2aa5858 100644 --- a/NzbDrone.Core/Jobs/JobRepository.cs +++ b/NzbDrone.Core/Jobs/JobRepository.cs @@ -1,7 +1,6 @@ using System; using System.Linq; using NzbDrone.Core.Datastore; -using NzbDrone.Core.Messaging; using NzbDrone.Core.Messaging.Events; diff --git a/NzbDrone.Core/Messaging/Commands/CommandExecutor.cs b/NzbDrone.Core/Messaging/Commands/CommandExecutor.cs index db14c7aa2..f54340a9c 100644 --- a/NzbDrone.Core/Messaging/Commands/CommandExecutor.cs +++ b/NzbDrone.Core/Messaging/Commands/CommandExecutor.cs @@ -118,12 +118,13 @@ namespace NzbDrone.Core.Messaging.Commands } finally { + _eventAggregator.PublishEvent(new CommandUpdatedEvent(command)); + _eventAggregator.PublishEvent(new CommandExecutedEvent(command)); + if (MappedDiagnosticsContext.Get("CommandId") == command.Id.ToString()) { MappedDiagnosticsContext.Remove("CommandId"); } - _eventAggregator.PublishEvent(new CommandUpdatedEvent(command)); - _eventAggregator.PublishEvent(new CommandExecutedEvent(command)); } _logger.Trace("{0} <- {1} [{2}]", command.GetType().Name, handler.GetType().Name, command.Runtime.ToString("")); diff --git a/NzbDrone.sln.DotSettings b/NzbDrone.sln.DotSettings index 82bd482c5..a7de7ce4f 100644 --- a/NzbDrone.sln.DotSettings +++ b/NzbDrone.sln.DotSettings @@ -11,6 +11,7 @@ WARNING WARNING HINT + Fixture ^(.*)\.Test(\..*)$ <?xml version="1.0" encoding="utf-16"?><Profile name="NzbDrone"><CSArrangeThisQualifier>True</CSArrangeThisQualifier><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>IMPLICIT_EXCEPT_SIMPLE_TYPES</LocalVariableStyle><ForeachVariableStyle>ALWAYS_IMPLICIT</ForeachVariableStyle></CSUseVar><CSUpdateFileHeader>True</CSUpdateFileHeader><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags></Profile> NzbDrone