@ -35,6 +35,15 @@ namespace NzbDrone.Core.Test.Messaging.Commands
. Returns ( _executorB . Object ) ;
}
[TearDown]
public void TearDown ( )
{
Subject . Handle ( new ApplicationShutdownRequested ( ) ) ;
// Give the threads a bit of time to shut down.
Thread . Sleep ( 10 ) ;
}
private void GivenCommandQueue ( )
{
_commandQueue = new BlockingCollection < CommandModel > ( new CommandQueue ( ) ) ;
@ -44,8 +53,10 @@ namespace NzbDrone.Core.Test.Messaging.Commands
. Returns ( _commandQueue . GetConsumingEnumerable ) ;
}
private void WaitForExecution( CommandModel commandModel )
private void QueueAnd WaitForExecution( CommandModel commandModel )
{
Thread . Sleep ( 10 ) ;
Mocker . GetMock < IManageCommandQueue > ( )
. Setup ( s = > s . Complete ( It . Is < CommandModel > ( c = > c = = commandModel ) , It . IsAny < string > ( ) ) )
. Callback ( ( ) = > _commandExecuted = true ) ;
@ -54,12 +65,14 @@ namespace NzbDrone.Core.Test.Messaging.Commands
. Setup ( s = > s . Fail ( It . Is < CommandModel > ( c = > c = = commandModel ) , It . IsAny < string > ( ) , It . IsAny < Exception > ( ) ) )
. Callback ( ( ) = > _commandExecuted = true ) ;
_commandQueue . Add ( commandModel ) ;
while ( ! _commandExecuted )
{
Thread . Sleep ( 100 ) ;
}
var t1 = 1 ;
Thread . Sleep ( 10 ) ;
}
[Test]
@ -82,9 +95,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands
} ;
Subject . Handle ( new ApplicationStartedEvent ( ) ) ;
_commandQueue . Add ( commandModel ) ;
WaitForExecution( commandModel ) ;
QueueAnd WaitForExecution( commandModel ) ;
_executorA . Verify ( c = > c . Execute ( commandA ) , Times . Once ( ) ) ;
}
@ -100,9 +112,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands
} ;
Subject . Handle ( new ApplicationStartedEvent ( ) ) ;
_commandQueue . Add ( commandModel ) ;
WaitForExecution( commandModel ) ;
QueueAnd WaitForExecution( commandModel ) ;
_executorA . Verify ( c = > c . Execute ( commandA ) , Times . Once ( ) ) ;
_executorB . Verify ( c = > c . Execute ( It . IsAny < CommandB > ( ) ) , Times . Never ( ) ) ;
@ -122,9 +133,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands
. Throws ( new NotImplementedException ( ) ) ;
Subject . Handle ( new ApplicationStartedEvent ( ) ) ;
_commandQueue . Add ( commandModel ) ;
WaitForExecution( commandModel ) ;
QueueAnd WaitForExecution( commandModel ) ;
VerifyEventPublished < CommandExecutedEvent > ( ) ;
ExceptionVerification . ExpectedErrors ( 1 ) ;
@ -141,9 +151,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands
} ;
Subject . Handle ( new ApplicationStartedEvent ( ) ) ;
_commandQueue . Add ( commandModel ) ;
WaitForExecution( commandModel ) ;
QueueAnd WaitForExecution( commandModel ) ;
VerifyEventPublished < CommandExecutedEvent > ( ) ;
}
@ -159,9 +168,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands
} ;
Subject . Handle ( new ApplicationStartedEvent ( ) ) ;
_commandQueue . Add ( commandModel ) ;
WaitForExecution( commandModel ) ;
QueueAnd WaitForExecution( commandModel ) ;
Mocker . GetMock < IManageCommandQueue > ( )
. Setup ( s = > s . Complete ( It . Is < CommandModel > ( c = > c = = commandModel ) , commandA . CompletionMessage ) )
@ -180,9 +188,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands
} ;
Subject . Handle ( new ApplicationStartedEvent ( ) ) ;
_commandQueue . Add ( commandModel ) ;
WaitForExecution( commandModel ) ;
QueueAnd WaitForExecution( commandModel ) ;
Mocker . GetMock < IManageCommandQueue > ( )
. Setup ( s = > s . Complete ( It . Is < CommandModel > ( c = > c = = commandModel ) , commandModel . Message ) )
@ -202,10 +209,10 @@ namespace NzbDrone.Core.Test.Messaging.Commands
public CommandB ( )
{
}
public override string CompletionMessage = > null ;
}
}
}